Python and or以及三目表示式語法

2021-08-14 15:07:27 字數 1671 閱讀 1499

在python中,and自左向右掃瞄布林表示式,如果所有值為真,則返回最後乙個為真的表示式,如果為假,則返回第乙個為假的表示式,例如:

print(2

and1

and3)

#這種情況下列印的值為3,即整個表示式中最後乙個為真的部分

print(1

and3

and0

and4)

#這種情況下列印第乙個為假的部分

print(1

and0

and3/0)

#注意這個地方的運算方式與c一樣,如果判斷這個布林表示式已經為假,則返回第乙個為假的部分,並且不再進行接下來的計算,這裡就不會報告除0的錯誤

注意這個地方會執行短路規則,一旦計算得出表示式是假,則直接返回第乙個為假的值,不繼續進行運算。

or的使用與and正好相反,自左向右計算整個布林表示式,如果有為真的值,那麼立刻返回第乙個為真的值,如果整個表示式為假,則返回最後乙個為假的值

print(0or1

or1/0)

#返回的是第乙個真值,並且不再繼續進行運算,所以沒有除0報錯

print(0

or'')

#返回的是最後乙個假值

and-or的組合使用與上述的規則一致,例如:

a = "first"

b = "second"

print(false

and a or b) #輸出為second

print(true

and a or b) #輸出為first

這時候,大家會發現這樣使用跟三目表示式很相似,也確實如此,但是有乙個問題就是如果a的值為假的時候,就不能像真的三目表示式一樣工作了(這時候會進行and運算之後還會判斷 or b的值),為了解決這個問題,可以使用列表的方法,例如:

a = "first"

b = "second"

print( (1

and [a] or [b] )[0] )

print( (0

and [a] or [b] )[0] )

a = 0

b = "second"

print( (1

and [a] or [b] )[0] )

print( (0

and [a] or [b] )[0] )

這樣,就算a的值是假,因為列表元素總是不為空的,所以總是可以得到正確結果。

在前面的and-or的組合使用其實就相當於對三目運算子的模擬,其實python本身也有自己的三目表示式,python的三目表示式與其他語言不太一樣,例如在c等語言中,我們的三目運算子是這樣的格式:

bool ?a

:b

在python中使用 if - else:

a = "first"

b = "second"

result1 = a

if1 > 0

else b

print(result1)

result2 = aif1

< 0

else b

print(result2)

簡單來說就是if後邊跟bool表示式,如果為真,就去最前面a,否則取後邊的b。

Python and or以及and or語法總結

一 and 在python 中,and 和 or 執行布林邏輯演算,如你所期待的一樣,但是它們並不返回布林值 而是,返回它們實際進行比較的值之一。複製 如下 a and b b and b a and b and c c 在布林上下文中從左到右演算表示式的值,如果布林上下文中的所有值都為真,那麼 a...

Python 三目運算

python 可通過 if 語句來實現三目運算的功能,因此可以近似地把這種 if 語句當成三目運算子。作為三目運算子的 if 語句的語法格式如下 true statements if expression else false statements 三目運算的規則是 先對邏輯表示式 expressi...

Python 三目運算

python 可通過 if 語句來實現三目運算的功能,因此可以近似地把這種 if 語句當成三目運算子。作為三目運算子的 if 語句的語法格式如下 true statements if expression else false statements 三目運算的規則是 先對邏輯表示式 expressi...