本题在 Python2 下答案选 C,在 Python3 下全部错误。
选项 A:Python2 与 Python3 均不支持复数比较大小,Python2 中会抛出以下错误: TypeError: no ordering relation is defined for complex numbers
Python3 中会抛出以下错误: TypeError: '>' not supported between instances of 'complex' and 'complex'
数字类型的比较可参考:
选项 B:Python2 与 Python3 均支持连续比较,相当于 3>2 and 2>2,后一个判断式为假,因此整个表达式都为假。可参考官方文档:
选项 C:Python2 支持数字与字符串之间的比较,而 Python3 则不支持,会报以下错误: TypeError: '>' not supported between instances of 'int' and 'str'
tuple 类型的比较是元素多的大于元素少的,若元素个数相等,则从第一个元素开始依次向后比较,直到两个元素不相等才结束。(字符串貌似永远比数字大,文档没找到说明,试出来的)
-------- Update in 2018/03/24 感谢更正,不明白为何当时会出上面的结果。--------
tuple 的比较是从两者的第一个元素的 ASCII 码开始,直至两个元素不相等为止,若前面元素都相等,则元素个数多的 tuple 较大。 (1,9) < (2,3) # True
(8,9) < (1,2,3) # False
(1,2,3) == (1,2,3) # True
(3,2) < ('a','b') # True
选项 D:字符串的比较与 tuple 类似,也是从第一个字符开始比较 ASCII 码,直到两个字符不相等为止。
字母与数字的ASCII 码大小范围是 "a-z" > "A-Z" > "0-9",D选项中 'a' < 'x',因此 'abc' > 'xyz' # False