下面的python代码调用了一个在dict上迭代的函数。 下面的代码不能按预期工作:
list1=["test1","test2","test3","test4"]
list2=["toto1","test1","test3","toto4"]
def functest(t):
for l in list2:
if t == l:
return cond1
else:
return "rien"
for t in list1:
titi=functest(t)
print titi
当我打印titi var时,我必须打印4次。
如果我删除函数中的else,代码似乎可以工作。
你怎么解释这种行为?
为什么当我用返回的字符串添加else时,只打印字符串。
谢谢
因为
return
退出函数并将程序返回循环。因此,当您在循环中添加else
语句时,将list1
的当前元素与'toto1'
进行比较,输入else
语句,函数返回"rien"
。当删除
else
语句时,循环直到在list2
中找到匹配项。但是,假设在list2
中的元素与正在检查的list1
中的元素都不匹配的情况下,仍然希望返回"rien"
,则应将return语句移出循环,以便仅在检查完所有元素后才返回。演示
相关问题 更多 >
编程相关推荐