eileen_李 发表于 2022-10-28 15:37:07

第5讲练习的最后一题

第5讲课后练习的最后一题,一个致命的BUG,説要加int后才可以进行比较,但没有加也可以进行比较,这个是什么原因?

jackz007 发表于 2022-10-28 15:59:16

      不知道你在说什么?把代码贴出来再说事情。

搞事专家 发表于 2022-10-28 16:10:44

没加之前是字符串的那个编码值在比较,所以产生了可以比较的现象

tpz497 发表于 2022-10-28 16:16:00

猜测一下 也许是因为不加 int 其实是在做字符串的比较就假如 ’4‘ 这个字符串 ASCII码大于 ’3‘这个字符串。 不是很会,请只做参考。

tommyyu 发表于 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
页: [1]
查看完整版本: 第5讲练习的最后一题