鱼C论坛

 找回密码
 立即注册
查看: 3277|回复: 7

[已解决]比较两数大小,input函数必须要取整吗

[复制链接]
发表于 2022-7-29 16:06:43 | 显示全部楼层 |阅读模式

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

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

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

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

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

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

我没有取整,输入小数也可以比较啊?就不太懂这个致命bug如何体现的。新手,求大佬解惑!
最佳答案
2022-7-29 16:16:51
本帖最后由 青出于蓝 于 2022-7-29 17:41 编辑
num1 = float(input("请输入第一个整数:"))
num2 = float(input("请输入第二个整数:"))

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

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

if num1 == num2:
    print("第一个数和第二个数一样大!")
两个整数比大小要int取整,两个小数比大小要float转型
而你没有对input函数返回的数据进行转型,所以你是在比较字符串的大小,也就是比较字符串的ascii码,这是致命bug
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-7-29 16:16:51 | 显示全部楼层    本楼为最佳答案   
本帖最后由 青出于蓝 于 2022-7-29 17:41 编辑
num1 = float(input("请输入第一个整数:"))
num2 = float(input("请输入第二个整数:"))

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

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

if num1 == num2:
    print("第一个数和第二个数一样大!")
两个整数比大小要int取整,两个小数比大小要float转型
而你没有对input函数返回的数据进行转型,所以你是在比较字符串的大小,也就是比较字符串的ascii码,这是致命bug
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-29 16:18:36 | 显示全部楼层
你第一个数输入9,第二个数输入10,你就会发现9大于10
这是因为字符串之间比较的是ASCII码,而且是逐个字符比较,9的ASCII码比1大,所以就会出现9比较10大了
num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))

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

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

if num1 == num2:
    print("第一个数和第二个数一样大!")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-29 19:46:11 | 显示全部楼层
前面两位大佬为正解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-29 20:40:45 | 显示全部楼层
取整的话可以用int()转型
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-30 22:23:00 | 显示全部楼层
input()获得的数据类型是字符串类型,如果要比较数字大小的话要转换成int类型或者float类型。毕竟字符串比较的只是ascll码而不是数据本身
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-6 09:11:22 | 显示全部楼层
青出于蓝 发表于 2022-7-29 16:16
两个整数比大小要int取整,两个小数比大小要float转型
而你没有对input函数返回的数据进行转型,所以你 ...

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-6 09:11:59 | 显示全部楼层
临时号 发表于 2022-7-29 16:18
你第一个数输入9,第二个数输入10,你就会发现9大于10
这是因为字符串之间比较的是ASCII码,而且是逐个字符比 ...

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 21:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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