Python循环仅执行一次报错,divisible_by_7函数逻辑错误如何修复
问题原因
报错提示的核心问题是return False的缩进位置错误,它当前被包含在for循环的代码块内,导致循环最多只会执行1次:
- 遍历第一个元素时,首先判断是否能被7整除:
- 符合条件则返回
True,这部分逻辑是正确的 - 不符合条件会直接执行
return False,函数直接终止运行,永远不会遍历列表中第二个及之后的元素
- 符合条件则返回
修正方法
把return False向外缩进一层,放到for循环结束后的位置,保证只有遍历完所有元素都没有找到能被7整除的数时,才返回False,修正后的代码如下:
def divisible_by_7(lst: List[int]) -> bool: """Return True if and only if lst contains an element divisible by 7. Otherwise, return False. >>> divisible_by_7([4,8,21,6]) True >>> divisible_by_7([1,2,8,9]) False """ for num in lst: if num % 7 == 0: return True return False
修正后逻辑完全匹配函数说明的要求:只要列表中存在一个能被7整除的元素就返回True,遍历完全部元素都没有符合要求的才返回False。
内容的提问来源于stack exchange,提问作者Dan G
相关产品推荐
相关产品推荐

