我的代码出了点问题,一个本该是假的语句却给出了真
出于某种原因,'6‘> '14’是真的。我将它们改为int s而不是str s,问题解决了,但我想知道为什么会发生这种情况。
这是一张照片!(http://prntscr.com/o1c7na)!
发布于 2019-06-13 20:08:44
为了比较字符串,它逐个字符地比较,第一个字符'6'具有更大的'1'表示,因此它更大。
下面是一些行为的例子:
>>> "a" > "b"
False
>>> "a" > "aaa"
False
>>> "1" > "2"
False
>>> "12" > "1"
True
>>> "6" > "14"
True
>>> "6" > "1"
True可以使用ord检索ASCII码
>>> ord("6")
54
>>> ord("1")
49发布于 2019-06-13 20:09:57
这是因为ascii字符串比较与逐个字母的ascii代码比较一起发生。因此,在第一个步骤中,将6与1进行比较,由于6大于1,因此返回true。
https://stackoverflow.com/questions/56580116
复制相似问题