Python解惑 整數比較

2021-08-08 18:18:13 字數 1741 閱讀 5968

python 中常用的資料型別bool(布林)型別的例項物件(值)就兩個,真和假,分別用truefalse表示。在if 條件判斷和while 語句中經常用到,不過在python2.x 中,true 和false 卻有著奇怪的用法,就是真假可以相互被替換,先看下面**:

>>> true

true

>>> false

false

>>> if true:

... print true

...

true

>>> if not false:

... print false

...

false

>>> true, false = false, true

>>> true

false

>>> false

true

>>> if not true:

... print false

...

true

>>> if false:

... print true

...

false

>>>

我把true 和false 互換了一下,就是傳說中的顛倒是非黑白。真變成了假,假變成了真。於是在條件判斷中,表示式的值返回false才執行**塊中的語句。究竟是什麼原因呢?

在python2.7 中,truefalse是兩個內建(built-in)變數,內建變數和普通自定義的變數如a, b, c一樣可以被重新賦值,因此我們可以把這兩個變數進行任意的賦值,比如:

true = 2

false = "abc"

甚至是true和false進行互換

tmp = true

true = false

false = true

互換後變數true指向了物件,false指向了物件:

因此,在python 中我們不要隨意給true 和false 賦新的值,否則程式**邏輯都會亂套了。這也算是python2.x 中乙個坑,不過在python3.x 中,終於把這個兩變數變成了關鍵字,也就是說,程式設計師再也沒法給這兩變數賦新的值了,從此true永遠指向物件,false指向物件,永不分離。用keyword模組檢測true 和false 是否為關鍵字。

>>> import keyword

>>> keyword.iskeyword('true')

false

我的部落格:

Python 整數比較(is, )

在 python 中一切都是物件,整數也是物件,在比較兩個整數時有兩個運算子 和is,它們的區別是 知道了is和 的區別之後,我們可以來看看下面的 了解python中整數比較有哪些坑 def main x y 1 while true x 1 y 1if x is y print d is d x,...

Python 整數物件is比較

python 整數用is比較 is 比較的是兩個物件的id值 記憶體中的位址 5,256 之間常用整數對比 在比較整數時,要知道python對於常用整數的儲存,5,256 之間的整數是存放在快取中的鍊錶中,需要使用時不再建立新的物件,而是直接引用物件 通過以下 可以看到區別 a 10 b 10 a ...

python類整數 整數類python

sinteger類基於位列表。它是位長度為len的有符號整數。len是在測試用例中定義的,因此您可以簡單地使用它而不必重新定義它。雖然位字串 bit str 可能必須短於len,但應進行符號擴充套件。如果輸入位字串是空字串,則新的sinteger物件應該是乙個全零的列表。請注意,列表中儲存的所有位物...