python布林系列 python 布林運算

2021-10-11 22:40:15 字數 1380 閱讀 3430

——《python學習手冊》讀書筆記

真值測試

在python中:

任何非零數字或非空物件都為真

數字零、空物件以及特殊物件none都被認作是假

比較和相等測試會遞迴地應用在資料結構中

比較和相等測試會返回true或false(1和0的特殊版本)

布林and和or運算子會返回真或假的操作物件

python中有三種布林表示式運算子:

x and y

x or y

not x

值比較會返回true或false作為其真值結果(其實是整數1和0的特殊版本,列印時不同但其實完全一樣)。接下來看一些例子:

2<3,3<2

(true,

false)

另一方面,and 和 or運算子總會返回物件

(不是運算子左側的物件就是右側的物件),而不是值true或false。如果我們在if或其他語句中測試其結果,總會如預期的結果那樣(每個物件的本質上不是真就是假)。

>>>2or3,3or2

(2,3)

​>>>or3

​3​>>>2and{}

>>>and{}

python中,運算是短路計算。就or測試而言,python會由左至右求算操作物件,然後返回第乙個為真的操作物件,在找到的第乙個真值運算元的地方停止。and

運算也是類似。

if/else三元表示式

考慮下列語句,根據x的真值把a設成y或z。

ifx:

a= y

​else:

a= z

用四行**編寫似乎太浪費了。python 2.5 引入了新的表示式格式,讓我們可以在乙個表示式中編寫出相同的結果:

a= yifxelsez

注意,python的x if y else z和c的y?x:z的順序有點不同。下面看一些例子:

a= 't'

if'spam'

else

'f'a

​'t'

a= 't'

ifelse

'f'a

​'f'

事實上,相同的效果可以小心地用and和or運算子的結合實現,因為它們不是返回左邊的物件就是返回右邊的物件:

a= ((xandy)orz)

但有個問題:你得假定y是布林真值。如果是這樣,效果就相同。 此外,使用下列表示式也是類似的,因為bool函式會把x轉化成對應的整數1或0:

a = [z,y][bool(x)]

然而,這並不完全相同,因為這樣不會做短路運算,無論x值是什麼,總是會執行z和y。

damant

the quieter you become,the more you are able to

hear.

北京2015-7-17

python布林類入門 Python的布林型別

前面我們了解到,布林型別是python的基礎資料型別,布林型別只有true和false兩種值,本節課我們學習布林型別的集中運算。與運算只有兩個布林值都為 true 時,計算結果才為 true。true and true true true and false false false and true...

Ruby系列 布林表示式

ruby中的布林運算子有 和 和其他語言不一樣的是 和 運算不是返回true或false,而是某個運算元。操作符先求解它們的第乙個運算元,如果為false,那麼返回它們的第乙個運算元,否則,返回第二個運算元。操作符先求解它們的第乙個運算元,如果為true,那麼返回它們的第乙個運算元,否則,返回第二個...

Python中布林型別

我們已經了解了python支援布林型別的資料,布林型別只有true和false兩種值,但是布林型別有以下幾種運算 與運算 只有兩個布林值都為 true 時,計算結果才為 true。true and true true true and false false false and true false...