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
相关产品推荐
相关产品推荐

