You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么这段Python代码会多次打印输出?如何调整为仅输出一次

问题原因
  • 所有打印、计算逻辑都写在了遍历numList的循环内部,每识别到一个奇数就会触发一次逻辑执行,自然会出现重复输出的问题
  • 原逻辑判断倒置:奇数数量不足5个时反而打印“列表中奇数超过5个”的错误提示
  • 奇数数量≥5后,每新增一个奇数就会重新遍历已收集的奇数列表求和,额外增加了不必要的嵌套循环,时间复杂度升高
修正后代码
numList = [422, 136, 524, 85, 96, 719, 85, 92, 10, 17, 312, 542, 87, 23, 
   86, 191, 116, 35, 173, 45, 149, 59, 84, 69, 113, 166]
odd_count = 0
odd_total = 0

# 仅遍历一次原列表完成所有统计
for num in numList:
    if num % 2 != 0:
        odd_count += 1
        odd_total += num

# 所有逻辑判断、打印均在遍历结束后执行,仅输出一次结果
if odd_count >= 5:
    print("Sum of all odd numbers is {}!".format(odd_total))
else:
    print("There are less than 5 odd numbers in this list")
核心优化点
  • 取消冗余的奇数列表存储和嵌套求和循环,遍历过程中直接统计奇数数量和总和,全程仅迭代一次
  • 所有输出逻辑移到循环外,保证只打印一次结果
  • 修正了原代码的逻辑倒置问题,输出和实际统计结果对齐

内容的提问来源于stack exchange,提问作者Oliver Pomaranski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 19:39:01