Gem*_*Gem -2 python loops for-loop
def evenchecker(lst):
for number in lst:
return number%2==0
else:
pass
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建一个函数来检查列表中的偶数或任何可迭代的项目。当我将第一个数字保持为偶数时,它可以工作,但是当我将第一个数字保持为奇数时,它会分崩离析,它只会返回 false 并且不会为进一步的偶数报告 true。
有人可以解释一下为什么会发生这种情况吗,我是编程和学习 Udemy 课程的绝对初学者。我确实找到了解决方法,
def evenchecker(lst):
for number in lst:
if number%2==0:
return "The list has an even number"
else:
pass
Run Code Online (Sandbox Code Playgroud)
这会检查到最后一个数字。
您的第一个循环立即返回。它不会查看列表的任何其他部分。你的第二个例子做得很好。这
else:
pass
Run Code Online (Sandbox Code Playgroud)
零件绝对没用。删除它们。
请注意,您可以在一行中执行该操作:
def evenchecker(lst):
return any(k % 2 == 0 for k in lst)
Run Code Online (Sandbox Code Playgroud)