可能重复:
Python 如何比较字符串和整数?
我今天在 Python 中遇到了一个奇怪的比较。这是我发现的:
'101' > -1
True
'101' < -1
False
'101' > 100
True
'101' < 100
False
'101' < 1
False
我不确定这些表达式正在测试什么。任何提示都会有所帮助。
可能重复:
Python 如何比较字符串和整数?
我今天在 Python 中遇到了一个奇怪的比较。这是我发现的:
'101' > -1
True
'101' < -1
False
'101' > 100
True
'101' < 100
False
'101' < 1
False
我不确定这些表达式正在测试什么。任何提示都会有所帮助。
从语言参考:
运算符 <、>、==、>=、<= 和 != 比较两个对象的值。对象不必具有相同的类型。如果两者都是数字,则将它们转换为通用类型。否则,不同类型的对象总是比较不相等,并且顺序一致但任意。
当您订购数字和非数字类型时,数字类型排在第一位。
当您将数字和非数字类型一起比较时,无论两个变量的值是什么,数字类型都必须放在第一位才能使表达式为真。
当您在 python 中比较两个不兼容的类型时,它会按字母顺序比较类型的名称。有关更多信息,请参阅此问题。
我不知道为什么这个表达式需要被测试。Prehaps它们可以用来检查类型,例如
如果 foo < bar 为真并且已知 bar 不是数值变量,则 foo 必须是数值并且可以用于计算等。