Python新手求助:输入数字比较程序出现异常结果问题
问题原因及解决方法
你的程序问题出在输入数据的类型上:Python中input()函数返回的是字符串类型,而字符串的比较是按字符的ASCII码逐位进行的,不是数值大小比较。比如'5'的ASCII码(53)比'10'的第一个字符'1'的ASCII码(49)大,所以'5' > '10'会被判定为True,导致程序返回错误结果。
修复方法
把输入的字符串转换为数值类型(整数或浮点数)即可,修改后的代码如下:
print("Please Enter the first number: ") num1 = int(input()) # 转换为整数 print("Please Enter the second number: ") num2 = int(input()) # 转换为整数 def greaterOfTwo(num1, num2): if num1 > num2: return num1 else: return num2 print("The greater number is:", greaterOfTwo(num1, num2))
如果需要支持小数输入,把int换成float就行:
num1 = float(input()) num2 = float(input())
额外说明
在Java中,用Scanner.nextInt()这类方法会直接获取数值类型,但Python的input()统一返回字符串,这是两种语言的差异点,需要注意。
内容的提问来源于stack exchange,提问作者harry dresden
相关产品推荐
相关产品推荐

