【发布时间】:2016-07-08 18:54:57
【问题描述】:
我不明白为什么下面的代码会给出真假真结果。
print("3" < "4")
print("3" < "10")
print("3" < "30")
我了解第一个和第三个代码,但为什么 print("3" < "10") 不给出 True 响应。
谢谢
【问题讨论】:
我不明白为什么下面的代码会给出真假真结果。
print("3" < "4")
print("3" < "10")
print("3" < "30")
我了解第一个和第三个代码,但为什么 print("3" < "10") 不给出 True 响应。
谢谢
【问题讨论】:
来自comparison 操作的python 文档:
使用其字符的数字等价物(内置函数 ord() 的结果)按字典顺序比较字符串。
字符比较从第一个字符开始,逐步遍历被比较的字符串,直到找到字符差异。
您的第二条语句返回 False,因为:
ord("3") > ord ("1")
【讨论】:
建议的链接会给你详细的答案。不过由于我假设你是开始编程,所以我试图用一种非常简单的方法来解释。
对于字符串,只要你开始写:
"ab"<"bc"
"30"<"400"
想象一下:
['a', 'b'] <['b', 'c']
['3', '0'] <['1', '0', '0']
现在比较两个列表的第一个元素,如果它们相等,则只移动到下一个元素:
第一个应该是 True。 第二个应该是 False。
按照同样的逻辑试试:
'30'<'31'
它应该评估为 True。
【讨论】: