我今天在Python中遇到了一个奇怪的比较。这是我发现的:
'101' > -1
True
'101' < -1
False
'101' > 100
True
'101' < 100
False
'101' < 1
False
我不确定这些表达式是在测试什么。任何提示都会有所帮助。
答案 0 :(得分:2)
运算符&lt;,&gt;,==,&gt; =,&lt; =和!=比较两个对象的值。对象不必具有相同的类型。如果两者都是数字,则将它们转换为通用类型。否则,不同类型的对象总是比较不相等,并且一致但是任意地排序。
答案 1 :(得分:0)
订购数字和非数字类型时,数字类型首先出现。
答案 2 :(得分:0)
当您将数字和非数字类型进行比较时,无论任何一个变量的值是什么,数字类型必须首先才能使表达式为真。
在python中比较两个不兼容的类型时,它会按字母顺序比较类型的名称。有关详细信息,请参阅this question。
我不知道为什么这个表达式需要进行测试。很可能它们可能用于检查类型,例如
如果foo&lt; bar为true且bar已知不是数字变量,则foo必须是数值,可用于计算等。