2

可能重复:
Python 如何比较字符串和整数?

我今天在 Python 中遇到了一个奇怪的比较。这是我发现的:

'101' > -1
True

'101' < -1
False

'101' > 100
True

'101' < 100
False

'101' < 1
False

我不确定这些表达式正在测试什么。任何提示都会有所帮助。

4

3 回答 3

2

语言参考

运算符 <、>、==、>=、<= 和 != 比较两个对象的值。对象不必具有相同的类型。如果两者都是数字,则将它们转换为通用类型。否则,不同类型的对象总是比较不相等,并且顺序一致但任意。

于 2012-08-30T10:54:46.420 回答
0

当您订购数字和非数字类型时,数字类型排在第一位。

于 2012-08-30T10:54:15.043 回答
0

当您将数字和非数字类型一起比较时,无论两个变量的值是什么,数字类型都必须放在第一位才能使表达式为真。

当您在 python 中比较两个不兼容的类型时,它会按字母顺序比较类型的名称。有关更多信息,请参阅此问题

我不知道为什么这个表达式需要被测试。Prehaps它们可以用来检查类型,例如

如果 foo < bar 为真并且已知 bar 不是数值变量,则 foo 必须是数值并且可以用于计算等。

于 2012-08-30T11:03:24.350 回答