Python输入数字比较异常:单双位数混合比较失效问题
问题原因与解决方案
问题根源
你代码里的核心问题是输入的内容被当作字符串处理,而非数值。input()函数返回的是字符串类型,字符串比较是按字符的ASCII码逐位对比,不是按数字的大小逻辑:
- 比如对比"10"和"3"时,会先看第一个字符:"1"的ASCII码(49)小于"3"的ASCII码(51),所以直接判定"10"<"3",这就出现了你看到的错误结果。
- 当两个数位数相同时,字符串的字典序刚好和数值大小一致,所以看起来运行正常,但这只是巧合,不是正确的数值比较逻辑。
修正后的代码
把输入的字符串转换成整数类型,就能实现正确的数值比较:
a = int(input("Enter an int: ")) b = int(input("Enter another int: ")) if a > b: print(f"{a} is greater than {b}") elif b > a: print(f"{b} is greater than {a}")
验证结果
修正后再测试你的案例:
- 输入a=10、b=3,输出:
10 is greater than 3 - 输入a=6、b=2,输出:
6 is greater than 2 - 输入a=24、b=10,输出:
24 is greater than 10
所有场景都能正确判定数值大小。
内容的提问来源于stack exchange,提问作者a_004
相关产品推荐
相关产品推荐

