python中的邏輯運算

很多語言種都有這樣一個三目運算符,bool ? a : b,使用也很方便,bool爲true返回a,否則返回b,python中需要使用and or這兩個東東達到同樣的效果,實際上python中的邏輯運算符挺讓人頭疼的。

舉個簡單的例子:

python 代碼
>>> a = "first"    >>> b = "second"    >>> 1 and a or b     'first'    >>> 0 and a or b     'second'   

上面的這段代碼就是等同三目運算符的了.

and操作會依次比較各個表達式,返回第一個爲false的表達式,否則返回最後一個爲true的表達式
or操作剛好相反,返回第一個爲true的表達式,否則返回最後一個爲false的表達式

這樣在看上面的代碼就容易多了

Example code的腳本中有這麼一段

python 代碼
  1. processFunc = collapse and (lambda s: " ".join(s.split())) or (lambda s: s)  
很好的利用了and和or的用法,可以根據collapse的值來給前面的函數附值,多麼方便
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章