'a' > str('2') # True
'a' > str('34363454') # True
'a' > 'b' # False
'a' < 'b' # True
我认为字符串a的值与ord(&#39; a&#39;)相同,即97.
我想知道如何用布尔表达式比较不同的字符串。
为什么b大于?为什么大于str(&#39; 2&#39;)?
答案 0 :(得分:1)
正如您所说,字符串比较可以被视为在结果上映射ord
并比较结果列表。
'23' > '33' = map(ord, '23') > map(ord, '33')
= (50, 51) > (51, 51)
= False
类似地
ord('a') = 97
ord('b') = 98
# and so...
'a' < 'b' # True
请注意,大写字母会在事物中抛出一把猴子扳手
'Z' < 'a' # True
'a' < 'z' # also True
答案 1 :(得分:0)
在Python中,所有变量都是作为存储其实际数据的内存区域的指针实现的。他们的行为是根据任意规则定义的。例如,比较字符串被定义为按字母顺序比较它们(如果字典中稍后出现,则&gt; b为真),所以你有:
>>> "stack" > "overflow"
True
&#39;一个&#39; == 97是在char类型(不是字符串&#39; a&#39;)表示为表示ASCII表中的位置的数字时发现的东西(例如,C的情况,或者, Python,可以使用ord()找到的东西。
答案 2 :(得分:0)