okamn 发表于 2022-7-29 16:06:43

比较两数大小,input函数必须要取整吗

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

临时号 发表于 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("第一个数和第二个数一样大!")

python爱好者. 发表于 2022-7-29 19:46:11

前面两位大佬为正解

w.py 发表于 2022-7-29 20:40:45

取整的话可以用int()转型

18199673236 发表于 2022-7-30 22:23:00

input()获得的数据类型是字符串类型,如果要比较数字大小的话要转换成int类型或者float类型。毕竟字符串比较的只是ascll码而不是数据本身

okamn 发表于 2022-8-6 09:11:22

青出于蓝 发表于 2022-7-29 16:16
两个整数比大小要int取整,两个小数比大小要float转型
而你没有对input函数返回的数据进行转型,所以你 ...

谢谢

okamn 发表于 2022-8-6 09:11:59

临时号 发表于 2022-7-29 16:18
你第一个数输入9,第二个数输入10,你就会发现9大于10
这是因为字符串之间比较的是ASCII码,而且是逐个字符比 ...

谢谢
页: [1]
查看完整版本: 比较两数大小,input函数必须要取整吗