Sgh191103 发表于 2020-10-12 23:18:15

input()获取的是字符串类型,那他们可以比较大小吗

今天在做新版python第五讲的作业,动动手部分第二题

num1 = input("请输入第一个整数:")
num2 = input("请输入第二个整数:")

if num1 < num2:
    print("第一个数比第二个数小!")

if num1 > num2:
    print("第一个数比第二个数大!")

if num1 == num2:
    print("第一个数和第二个数一样大!")

说这个代码有一个致命的bug,那就是input获取的是字符串类型,这里是想比较数字的大小

我比较好奇的是,如果不进行修改,用上面的代码去运行,为什么,输入的个位数显示出来以后总是比两位及以上的数字大
比如第一个数字输入5,第二个数字输入20,按回车键,显示出来的结果是“第一个数比第二个数大!”
为什么不进行整数转化直接进行比较会得到这种结果而不是报错

昨非 发表于 2020-10-12 23:23:52

可以转换,
number = int(input("请输入第一个整数:"))
即可按数字大小比较

字符串的比较本质是在比较其各位字符的ASCII码,依次比较,前一位判断出结果后,后一位就不看了
5的ASCII码大于2,所以字符串5大于字符串20

均昊山 发表于 2020-10-12 23:40:26

ASCII码比较
页: [1]
查看完整版本: input()获取的是字符串类型,那他们可以比较大小吗