Gau*_*wal 2 string floating-point python-2.x
我在 python shell 中试过这个
>>> a='apple'
>>> b=11.1
>>> a>b
True
>>> a
'apple'
>>> b>a
False
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释一下a>bTrue 是怎样的吗?Whena是一个字符串并且b是浮点数。
不同类型元素之间的顺序比较是 Python 2.x 中的一个“设计错误”,它已在 Python 3 中删除(您会收到运行时错误)。
在 3.x 之前纠正它不是一个选项,因为许多现有软件对异构容器进行排序(第 3 版是第一个故意破坏向后兼容性的软件)。
在 Python 2.x 中,您可以比较</ 的任何内容>,唯一的例外是复数,这是明确禁止的。
不同类型比较的排序结果是任意的,但至少对于 Python 解释器的给定运行是固定的,请参阅http://docs.python.org/2/reference/expressions.html#not-in。不同的非数字类型的值总是被认为是不同的。