本文主要介紹了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...