Python数字集合循环处理代码问题:遇0输出异常、求和不符
修正后的代码及说明
先梳理你代码里的几个问题:
- 遇到0时提前打印了"Done",导致输出重复,不符合"程序末尾始终输出Done"的要求
- 最后一行把
Done写成了D0ne(数字0而非字母o) - 没有利用for循环的else子句,反而用了额外的if判断,逻辑冗余
- 循环内每次累加后就打印total,不符合需求中"未遇到0时输出总和"的要求
下面是修正后的代码:
total = 0 num_collection = (12, 4, 3, 33, -2, -5, 7, 0, 22, 4) for num in num_collection: if num < 0: continue # 忽略负数,满足规则2 if num == 0: break # 遇到0立即终止循环,满足规则1 total += num else: # 仅当循环未被break中断时执行,满足规则3 print(total) print("Done") # 程序末尾固定输出,满足规则4
效果验证:
- 当集合包含0时:循环触发break终止,不会执行else块,最终仅输出"Done",符合预期
- 当移除集合中的0时:循环正常结束,else块打印有效数字总和
85,随后输出"Done",符合预期
内容的提问来源于stack exchange,提问作者De Tech Guy
相关产品推荐
相关产品推荐

