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

Python程序输入奇数时额外打印偶数的问题排查求助

问题分析与解决

问题原因

当输入奇数时程序多打印数字,核心问题是循环逻辑的顺序错误,加上冗余的判断分支混淆了逻辑:

  1. 原循环条件是num1 > num2,进入循环后先执行num2 +=2再打印——这意味着当num2是小于num1的最大偶数时(比如输入5时的4),满足循环条件进入循环,加2后变成6(已经大于5),但还是被直接打印出来,导致输出超出范围。
  2. 代码里的if num2 % 2 == 0完全多余:因为num2初始为0,每次加2,永远是偶数,else分支永远不会触发,属于无效代码。

举个输入5的执行流程:

  • 初始num1=5,num2=0
  • 第一次循环:5>0成立 → num2=2 → 打印2
  • 第二次循环:5>2成立 → num2=4 → 打印4
  • 第三次循环:5>4成立 → num2=6 → 打印6(此时6已经大于输入的5)

修正方案

方案一:调整循环逻辑顺序

把打印操作放在加2之前,同时修改循环条件为num2 <= num1,确保只打印不超过输入值的偶数:

num1 = int(input("Please enter a number : "))
num2 = 0

while num2 <= num1:
    print(num2)
    num2 += 2

方案二:用range简化实现(更简洁直观)

利用Python的range函数直接生成符合要求的偶数序列,避免手动维护循环变量:

num1 = int(input("Please enter a number : "))
for num in range(0, num1 + 1, 2):
    print(num)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 22:55:16