鱼C论坛

 找回密码
 立即注册
查看: 1838|回复: 2

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

[复制链接]
发表于 2020-10-12 23:18:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
今天在做新版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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-12 23:23:52 | 显示全部楼层    本楼为最佳答案   
可以转换,
number = int(input("请输入第一个整数:"))
即可按数字大小比较

字符串的比较本质是在比较其各位字符的ASCII码,依次比较,前一位判断出结果后,后一位就不看了
5的ASCII码大于2,所以字符串5大于字符串20
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-12 23:40:26 | 显示全部楼层
ASCII码比较
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 09:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表