python中str和int区别_Python如何比较string和int?
从
python 2 manual:
CPython implementation detail: Objects of different types except numbers are ordered by their type names; objects of the same types that don’t support proper comparison are ordered by their address.
当您订购两个字符串或两个数字类型时,排序是以预期的方式完成的(字符串的字典排序,整数的数字排序)。
当您订购数字和非数字类型时,数字类型优先。
>>> 5 < 'foo'
True
>>> 5 < (1, 2)
True
>>> 5 < {}
True
>>> 5 < [1, 2]
True
当您订购两个不兼容的类型(两者都不是数字)时,它们按其类型名的字母顺序排序:
>>> [1, 2] > 'foo' # 'list' < 'str'
False
>>> (1, 2) > 'foo' # 'tuple' > 'str'
True
>>> class Foo(object): pass
>>> class Bar(object): pass
>>> Bar() < Foo()
True
一个例外是旧式类,它总是在新式类之前。
>>> class Foo: pass # old-style
>>> class Bar(object): pass # new-style
>>> Bar() < Foo()
False
Is this behavior mandated by the language spec, or is it up to implementors?
Otherwise, objects of different types always compare unequal, and are ordered consistently but arbitrarily.
所以这是一个实现细节。
Are there differences between any of the major Python implementations?
我不能回答这一个,因为我只使用官方的CPython实现,但还有其他的Python实现,如PyPy。
Are there differences between versions of the Python language?
在Python 3.x中,行为已经改变,因此尝试排序整数和字符串将引发错误:
>>> '10' > 5
Traceback (most recent call last):
File "", line 1, in
'10' > 5
TypeError: unorderable types: str() > int()
总结
以上是生活随笔为你收集整理的python中str和int区别_Python如何比较string和int?的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: python find函数 和index
- 下一篇: python import出错_pyth