Python學習之and or使用技巧

2021-08-25 19:28:46 字數 1913 閱讀 5065

本文主要介紹了python and or使用的一些小技巧

在python中 and 和 or 執行布林邏輯運算,但是他們並不返回布林值,而是返回他們實際進行比較的值之一。

'a'

and'b' 這個返回 『b』

使用 and 時, 從左到右計算表示式的值。 0、''、、()、{}、none 在布林環境中為假;其它任何東西都真。

在這個例子中 and 計算 『a』 的值為真,然後 是計算 『b』的值也為真,最終返回 『b』 這個值。

''and

'b'如果布林環境中的某個值為假,則 and 返回第乙個假值。在這例子返回第乙個假值。在這例子中, '' 是第乙個假值。

'a'and

'b'and

'c'

所有值都為真,返回最後乙個真值,返回最後乙個真值,'c'。

'a'

or'b'

使用 or 時,計算從左往右,如果有乙個值為真,or立刻返回該值,本例中『a』是第乙個真值。

''or

'b'''

or or {}

defsidefx

():print

"in sidefx()"

return

1'a'

or sidefx()

注意 注意 or 在布林環境中會一直進行表示式計算直到找第個真值,然後就會忽略剩餘的比較值,如果某些值有***,例如這裡的函式sidefx就不會被呼叫了。

>>> a = "first"

>>> b = "second"

>>> 1

anda

or b (1)

'first'

這個語法看起來類似於 c 語言中的 語言中的 語言中的 bool ? a : b 表示式。 整個從左到 右計算, 所以先and 表示式 。

1and

'first' 值為 'first', 然後 'first'

or'second' 的值為 'first'。

>>> 0

anda

or b (2)

'second'

0and

'first' 值為 false,然後 0

or'second' 值為 'second'

>>> a = ""

>>> b = "second"

>>> 1

anda

or b

'second'

像這樣的 and 後面的 a 是乙個假值,最後返回的是 b 值,並不是我們期望的效果。(我們期望是 and前面的值的真假 來控制

最後返回是 or 左邊 還是 or 右邊的值,真的情況返回左邊的值,假的情況返回右邊的值。)

processfunc = collapse and (lambda s: " ".join(s.split())) or (lambda s: s)

像這樣的,and後面哪個表示式是乙個lambda,不會是假的,這樣就可以通過 collapse變數的真假來 決定最後返回的是

or哪邊的lambda表示式。

這種方式就是把乙個判斷從乙個函式中摘取出來,通過這個判斷來決定使用哪個函式,這樣更為高效。

>>> a = ""

>>> b = "second"

>>> (1

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

''這裡我們可以採用列表來強制的把or兩邊的值都設定成真值。這樣我們可以根據 and 前面的值 來決定 最後表示式的值拉。

這裡其實我們就是想 模仿 乙個 bool ? a : b 這樣的乙個效果。

這裡在python中我們可以使用 if

else 來做的。

Python學習之and or使用技巧

本文主要介紹了python and or使用的一些小技巧 在python中 and 和 or 執行布林邏輯運算,但是他們並不返回布林值,而是返回他們實際進行比較的值之一。a and b 這個返回 b 使用 and 時,從左到右計算表示式的值。0 none 在布林環境中為假 其它任何東西都真。在這個例...

python 函式 and or 技巧學習

c語言中有類似的表達 bool a b 當表示式值為真的話,值為a,否則為b.看乙個例子 a first b second 1 and a or b first 0 and a or b second 這個例子很好理解,1 表示為真,值為a,否則為b.在使用過程中,發現也不完全是這樣,如果a 為假的...

Python學習之datetime庫的使用

datetime庫以類的方式提供多種日期和時間表示式。1 datetime.date 日期表達類,可以表達年丶月丶日等。2 datetime.time 時間表達類,可以表示小時丶分鐘丶秒丶毫秒等。3 datetime.datetime 日期和時間表示的類,功能覆蓋date和time類。4 datet...