为什么code1输出字典中的所有值而code2只输出一项
我的代码1:
resources = {
"water": 300,
"milk": 200,
"coffee": 100, }
def available(dict):
for k,v in dict.items():
print(f'{k}:{v}')
available(resources)
输出 1:
water:300
milk:200
coffee:100
我的代码2
resources = {
"water": 300,
"milk": 200,
"coffee": 100,}
def available(dic):
for char in dic:
return f'{char}:{dic[char]}'
print((available(resources)))
输出2
water:300
答案 0 :(得分:3)
在 code1
中,您使用的是不会终止函数的 print
,而在 code2
中,您使用的是 return
。 return
语句立即终止函数执行并返回该值。
如果要返回 code2
中的所有值并以与 `code` 中相同的方式打印它们,请使用以下内容:
resources = {
"water": 300,
"milk": 200,
"coffee": 100,}
def available(dic):
return [f'{char}:{dic[char]}' for char in dic]
# here we join all the elements in the list using '\n'
print('\n'.join(available(resources))) ```
答案 1 :(得分:2)
return
关键字用于标记函数的结束。所以你的函数在 return
语句执行时结束。然后,在 return...
之前只迭代一个元素,所以只打印一个值。
您可能正在寻找的是
def available(dic):
return [f'{char}:{dic[char]} for char in dic]'
答案 2 :(得分:0)
在 my code2
中,您调用的是 return
而不是 print
。
如果要返回从 my code1
打印的字符串,请将 my code2
修改为:
resources = {
"water": 300,
"milk": 200,
"coffee": 100,}
def available(dic):
s = ''
for char in dic:
s += f'{char}:{dic[char]}\n'
return s
print((available(resources)))
答案 3 :(得分:0)
这是因为返回命令。它只从您的函数返回一个值。您可以使用以下代码对此进行测试:
resources = {
"water": 300,
"milk": 200,
"coffee": 100,}
def available(dic):
for char in dic:
print( f'{char}:{dic[char]}')
available(resources)