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

Python奇偶判断代码始终输出奇数问题求助

Python奇偶判断代码错误分析与修复

你的代码核心问题是错误地将整数和布尔值进行相等比较,导致逻辑判断完全失效。

错误原因拆解

even = number % 2 == 0这行代码是正确的:它会根据输入数字是否为偶数,生成布尔值True(偶数)或False(奇数)。但你后续写的if number == even是在拿输入的整数(比如2、3、5这类)和布尔值True/False做比较——这两种类型的值永远不可能相等:

  • 当输入偶数时,even是True(本质对应整数1),但输入的偶数(如2、4)不等于1,判断不成立;
  • 当输入奇数时,even是False(本质对应整数0),输入的奇数(如3、5)也不等于0,判断同样不成立。

所以不管输入什么数字,代码都会走到else分支,输出奇数的结果。

修复方案

有两种简单的修复方式:

方案1:直接使用布尔变量作为判断条件

保留你定义的even变量,直接在if中判断它的布尔值即可:

number = int(input("Which number do you want to check? "))

even = number % 2 == 0

if even:
    print("This is an even number.")
else:
    print("This is an odd number.")

方案2:直接在if中写判断逻辑(即你给出的正确示例)

省去额外变量,直接把判断逻辑写在if条件里,代码更简洁:

number = int(input("Which number do you want to check? "))

if number % 2 == 0:
    print("This is an even number.")
else:
    print("This is an odd number.")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 14:36:03