字符串和整数不等式

时间:2012-08-30 10:50:38

标签: python

  

可能重复:
  How does Python compare string and int?

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

'101' > -1
True

'101' < -1
False

'101' > 100
True

'101' < 100
False

'101' < 1
False

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

3 个答案:

答案 0 :(得分:2)

来自the language reference

  

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

答案 1 :(得分:0)

订购数字和非数字类型时,数字类型首先出现。

答案 2 :(得分:0)

当您将数字和非数字类型进行比较时,无论任何一个变量的值是什么,数字类型必须首先才能使表达式为真。

在python中比较两个不兼容的类型时,它会按字母顺序比较类型的名称。有关详细信息,请参阅this question

我不知道为什么这个表达式需要进行测试。很可能它们可能用于检查类型,例如

如果foo&lt; bar为true且bar已知不是数字变量,则foo必须是数值,可用于计算等。