鱼C论坛

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

代码出错了,死活看不出来

[复制链接]
发表于 2024-7-10 21:03:17 | 显示全部楼层 |阅读模式

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

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

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

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

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

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

本帖被以下淘专辑推荐:

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

使用道具 举报

发表于 2024-7-10 21:05:30 | 显示全部楼层
哈哈,别担心,看代码就像剥洋葱一样,一层一层来,很快就能找到问题。让我瞅一眼你的代码!
num1 = input("请输入第一个整数:")
num2 = input("请输入第二个整数:")

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

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

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

哎呀,你的代码看起来很不错,但是有个小问题,`input` 输入的都是字符串(str)类型,而你直接拿来做大小比较,这样比较的是字符串的字典顺序而不是数值大小哦。

不妨试试在读取输入的时候,转换成整数类型(int),这样我们就可以进行数值的比较了。再把改好的代码贴给你:
num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))

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

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

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

现在,程序运行时输入两个整数,它们会被转换为整数类型,然后进行数值比较,这样结果就正常啦!试试看,是不是好多了?记住,遇到问题不要着急,慢慢剥开“洋葱”就会发现隐藏的“bug”。加油!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-10 21:12:34 | 显示全部楼层
这里提供另解,因为字符串同样也是可以比较的,但是如果是在长度不一致的时候,可能会出现问题,因此,可以先比较长度,再比较字典序。
num1 = input("请输入第一个整数:")
num2 = input("请输入第二个整数:")

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

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

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

使用道具 举报

发表于 2024-7-10 21:45:25 | 显示全部楼层
input 输入的都是字符串(str)类型, 转换成整数类型(int)
通俗易懂正解
num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))

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

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

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

使用道具 举报

发表于 2024-7-11 09:45:50 | 显示全部楼层
也可以试试elif(小甲鱼老师之前讲过会更好)
num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))

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

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

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

使用道具 举报

发表于 2024-7-11 10:04:02 | 显示全部楼层

字符串比较大小,从左到右,依次单独将对应相同位置上的字符进行比较,比较的是字符的 unicode 值

python内置函数 ord 可以得到对应字符的 unicode 值。

比较过程中,若 unicode 值相同,则开始比较下一个位置上的字符

在比较期间,除了相同字符继续下一个字符进行比较,其它时候如果只要有一个字符 和 另一个字符比较出了大小,则就返回此次比较的结果

例如你输入 9  和  10,你会发现 "9" > "10" 是因为 9 字符的 unicode 值,大于 1 字符的 unicode 值,而 0 就不进行比较了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-24 13:07:55 | 显示全部楼层
字符串无法进行比较
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-25 18:04:51 | 显示全部楼层
比较整数嘛,当然要把字符串转为整数int咯
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 20:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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