python2 中沒有布林值,直接用數字 0 表示 false,用數字 1 表示 true。
python3 中,把 true 和 false 定義成了關鍵字,但他們的本質還是 1 和 0,甚至可以和數字相加。
>>
> a =
true
>>
> b =
3>>
> a+b
4
>>
>
bool(3
)true
>>
>
bool()
false
運算子
描述==
等於 (區分:「=」的含義是「賦值」,)
!=不等於
>
大於<
小於》=
大於等於
<=
小於等於
運算子格式
計算邏輯
or 或
x or y
x 為 true,則不計算 y,直接返回 true;x 為 false,則返回 y
and 且
x and y
x 為 true,則返回 y 的值;x 為 false,則不計算 y,直接返回 false
not 非
not x
x 為 true,返回 false;x 為 false,返回 true
>>
> a =
true
#true和false首字母要大寫
>>
> b =
false
>>
> a or b
true
>>
> a or10/
0true
>>
>10/
0or a
traceback (most recent call last)
: file ""
, line 1,in
10/0or a
zerodivisionerror: division by zero
>>
>
#後兩節,很好的闡釋了or的計算邏輯
>>
> a =
true
>>
> b =
false
>>
> a and
3030
>>
>
30and a #非空即true
true
>>
> b and
30false
>>
>
30and b
false
>>
> a =
true
>>
> b =
false
>>
>
not a
false
>>
>
not b
true
運算子
描述is
is 是判斷兩個識別符號是不是引用同乙個物件
is not
is not 是判斷兩個識別符號是不是引用不同物件
整數快取問題
python 僅僅對比較小的整數物件進行快取(範圍為[-5, 256])快取起來,而並非是所有整數物件。需要注意的是,這僅僅是在命令列中執行,而在 pycharm 或者儲存為檔案執行,結果是不一樣的,這是因為直譯器做了一部分優化(範圍是[-5,任意正整數])。
·總結1、is 比較兩個物件的 id 值是否相等,是否指向同乙個記憶體位址;
2、== 比較的是兩個物件的內容是否相等,值是否相等;
3、小整數物件[-5,256]在全域性直譯器範圍內被放入快取供重複使用;
4、is 運算子比 == 效率高,在變數和 none 進行比較時,應該使用 is。
>>
> a =
1000
#1000不在全域性直譯器的快取區間內
>>
> b =
1000
>>
> a == b
true
>>
> a is b #易錯點:儲存為檔案之後,輸出結果為true
false
>>
>
id(a)
46764560
>>
>
id(b)
46765216
>>
> c =
10#10在全域性直譯器的快取區間內
>>
> d =
10>>
> c is d
true
>>
>
id(c)
1388831648
>>
>
id(d)
1388831648
布林值 比較運算子 同一運算子以及整數快取問題
布林值 在python3中,把true和false定義成了關鍵字,但本質還是1和0,甚至可以數字相加。比較運算子 所有比較運算子返回1表示真,返回0表示假,這分別於特殊變數true和false等價。以下假設變數a 3 變數b 10 運算子描述 例項 等於 比較物件的值是否相等 a b 返回false...
布林邏輯運算子
是的,我說的就是這幾個 普通與 短路與 普通或 短路或 為什麼叫 短路 呢?普通與 短路與 普通或 短路或 這個短路是形象的說法,採用 了初中物理的乙個名詞,這樣叫,只是為了更好的區分它們。短路的意思 可以理解為 當線路出現問題,有些器件不會執行。同理 1.當在 a b 條件下,當a為false時,...
布林邏輯運算子之「 」和「 」
和 是布林邏輯運算子中的邏輯或及邏輯與 1 只要 前面為false,無論 後面是true還是false,結果都返回 後面的值。2 只要 前面為true,無論 後面是true還是false,結果都返回 前面的值。3 只要 前面是false,無論 後面是true還是false,結果都將返 前面的值 4 ...