【发布时间】:2026-02-07 19:30:02
【问题描述】:
def evenchecker(lst):
for number in lst:
return number%2==0
else:
pass
我正在尝试创建一个函数来检查列表中的偶数或任何可迭代的项目。当我将第一个数字保持为偶数时,它可以工作,但是当我将第一个数字保持为奇数时,它会分崩离析,它只会返回 false,并且不会为进一步的偶数报告 true。
有人可以解释一下为什么会发生这种情况,我是编程的绝对初学者,并从 Udemy 课程中学习。我确实找到了解决方法,
def evenchecker(lst):
for number in lst:
if number%2==0:
return "The list has an even number"
else:
pass
这会一直检查到最后一个数字。
【问题讨论】:
-
您如何得出您声称的事实?您可能没有正确检查代码,但我们无法仅从您提出的声明中判断您做错了什么。
-
@tripleee 当我为第一个函数写 evenchecker([1,2]) 时它说 false,当它应该说 even 因为列表中有一个偶数但是当我做 evenchecker([ 2,1])它说 True 因为第一个元素是偶数。对于我写的第二个函数,它可以检查列表中的任何数字,它不会只停留在第一个数字。
-
你知道 return immediately 会停止函数,因此也会停止任何外部结构,例如循环?
-
现在明白了,谢谢@MisterMiyagi
-
我建议您返回并查看有关
if ... else和for的基础知识。