鱼C论坛

 找回密码
 立即注册
查看: 3129|回复: 4

[已解决]第5讲练习的最后一题

[复制链接]
发表于 2022-10-28 15:37:07 | 显示全部楼层 |阅读模式

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

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

x
第5讲课后练习的最后一题,一个致命的BUG,説要加int后才可以进行比较,但没有加也可以进行比较,这个是什么原因?
最佳答案
2022-10-28 18:22:09
>>> '9' > '1'
True
>>> # 上面的代码将字符串 '9' 和字符串 '1' 比较
>>> # Python 在比较的时候,会逐个字符进行比较
>>> # 以上免的代码为例,由于两个字符串的长度都是 1,所以 Python 将 '9' 和 '1' 的ASCII值进行比较
>>> # '9' 的ASCII值是 57,'1' 的ASCII值是 49,因此 Python 认为 '9' > '1'
>>> # 不过用这种方法来比较数字也有局限性,比如下面的代码:
>>> '9' > '10'
True
>>> # 此时 Python 仍然是逐个字符比较
>>> # 先比较两数的第一个字符,得出 '9' > '1'
>>> # 然后,Python 就认为 '9' > '10'
ASCII 编码 -> https://www.runoob.com/w3cnote/ascii.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-28 15:59:16 | 显示全部楼层
        不知道你在说什么?把代码贴出来再说事情。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-28 16:10:44 From FishC Mobile | 显示全部楼层
没加之前是字符串的那个编码值在比较,所以产生了可以比较的现象
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-28 16:16:00 | 显示全部楼层
猜测一下 也许是因为不加 int 其实是在做字符串的比较  就假如 ’4‘ 这个字符串 ASCII码大于 ’3‘这个字符串。 不是很会,请只做参考。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-28 18:22:09 | 显示全部楼层    本楼为最佳答案   
>>> '9' > '1'
True
>>> # 上面的代码将字符串 '9' 和字符串 '1' 比较
>>> # Python 在比较的时候,会逐个字符进行比较
>>> # 以上免的代码为例,由于两个字符串的长度都是 1,所以 Python 将 '9' 和 '1' 的ASCII值进行比较
>>> # '9' 的ASCII值是 57,'1' 的ASCII值是 49,因此 Python 认为 '9' > '1'
>>> # 不过用这种方法来比较数字也有局限性,比如下面的代码:
>>> '9' > '10'
True
>>> # 此时 Python 仍然是逐个字符比较
>>> # 先比较两数的第一个字符,得出 '9' > '1'
>>> # 然后,Python 就认为 '9' > '10'
ASCII 编码 -> https://www.runoob.com/w3cnote/ascii.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-25 21:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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