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
- 下一篇: 基类的析构函数不能被继承。_为什么要把C