为何Python循环在找到第一个符合条件的输出时就停止?
问题原因与代码修正
现象原因
循环提前终止的核心问题是代码在找到第一个符合条件的数字后,立刻执行了return output语句。这个语句会直接终止整个func函数并返回当前结果列表,导致循环还没遍历后续元素就停止了。
除此之外,原代码还有两处逻辑错误:
break语句后的continue完全无效,因为break已经跳出当前循环,后续代码根本不会执行。- 判断顺序不符合需求:应该先检查数字是否大于500(满足则终止循环),再处理大于150的情况(满足则跳过),原代码的判断顺序会导致逻辑混乱。
修正后的代码
def func(inputs): inputs = [int(i) for i in inputs] output = [] for i in inputs: # 先判断是否大于500,满足则终止循环 if i > 500: break # 再判断是否大于150,满足则跳过当前元素 if i > 150: continue # 最后判断是否能被5整除,满足则加入结果列表 if i % 5 == 0: output.append(i) # 循环结束后再返回结果 return output inputs = input().split(', ') print(func(inputs))
测试验证
用输入14, 85, 65, 625, 75测试,修正后的代码会输出[85, 65]:
- 85和65都能被5整除且不大于150,被加入列表;
- 遇到625时,因为大于500,循环终止,后续的75不会被处理,完全符合需求。
内容的提问来源于stack exchange,提问作者VishalVishwas
相关产品推荐
相关产品推荐

