Python學習之and or使用技巧

2021-09-25 08:10:41 字數 2259 閱讀 9266

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

在這也不好一一放出

進qq群 688244617

群裡還有小夥伴跟你一起交流學習

''or[

]ordefsidefx()

:print

"in sidefx()"

return

1'a'

or sidefx(

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

>>

> a =

"first"

>>

> b =

"second"

>>

>

1and a or b (1)

'first'

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

1and'first' 值為 'first', 然後 'first'

or'second' 的值為 'first'。

更多免費的python學習資料

進qq群 688244617

群裡還有小夥伴跟你一起交流學習

>>

>

0and a or b (2)

'second'

0and

'first' 值為 false,然後 0

or'second' 值為 'second'

>>

> a =

"">>

> b =

"second"

>>

>

1and a 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...