比较字符串与数字 - Python

时间:2016-03-22 02:11:11

标签: python string compare

我无法弄清楚为什么以下代码会给出True,False,True结果。

print("3" < "4")
print("3" < "10")
print("3" < "30")

我理解第1和第3段代码,但为什么print("3" < "10")没有给出True回复。

谢谢

2 个答案:

答案 0 :(得分:2)

来自comparison操作的python文档:

  

使用字符的数字等价物(内置函数ord()的结果)按字典顺序比较字符串。

字符比较从第一个字符开始,逐步完成比较字符串,直到找到字符差异。

您的第二个语句返回False,因为:

ord("3") > ord ("1")

答案 1 :(得分:2)

建议的链接将为您提供详尽的答案。但是,由于我假设您正在开始编程,我正在尝试采用一种非常简单的方法来解释。

对于字符串,只要你开始写作:

 "ab"<"bc"

 "30"<"400"

想象一下:

['a', 'b'] <['b', 'c']
['3', '0'] <['1', '0', '0']

现在比较两个列表的第一个元素,如果它们相等则只移动到下一个元素:

第一个应该是True。 第二个应该是假的。

遵循相同的逻辑并尝试:

'30'<'31'

它应评估为True。