第5讲练习的最后一题
第5讲课后练习的最后一题,一个致命的BUG,説要加int后才可以进行比较,但没有加也可以进行比较,这个是什么原因? 不知道你在说什么?把代码贴出来再说事情。 没加之前是字符串的那个编码值在比较,所以产生了可以比较的现象 猜测一下 也许是因为不加 int 其实是在做字符串的比较就假如 ’4‘ 这个字符串 ASCII码大于 ’3‘这个字符串。 不是很会,请只做参考。 >>> '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]