python中的與 和 或


上周五寫程序碰到需要處理多重判斷的一個邏輯,一般正確的寫法是:

if a or b or (c and d) or e:
    pass 

因為變量很長,看上去比較雜亂,自己靈機一動寫成了如下的樣子:

if a | b | c&d | e

運行程序,一直報錯,后來才恍然大悟,發現一下子犯了兩個錯誤:
第一:python 中& |是位操作

&	按位與	數的按位與	5 & 3得到1。
|	按位或	數的按位或	5 | 3得到7。

第二:python中& |是同樣優先級的操作,沒有括號時,從左向右操作。

后來自己又想到用&&及||這兩個運算符,發現Python中竟也沒有這兩個運算符。

最終,找到了python中的any方法,能夠比較好的滿足自己的需求。

any([a, b, (c and d), e])

any即針對的是一個list,判斷list中的某個元素是否為真,此時只要有一個元素為真,list元素全部輸出。

any的用法:

>>> any('123')
True
>>> any([0,1])
True
>>> any([0,''])
False
>>> any([0,'','false'])
True
>>> any([0,'',bool('false')])
True
>>> any([0,'',False])
False
>>> any(('a','b','c'))
True
>>> any(('a','b',''))
True
>>> any((0,False,''))
False
>>> any([])
False
>>> any(())
False

all的用法:

>>> all(['a','b','c','d'])
True
>>> all(['a','b',''])
False
>>> all([0,1,2,3])
False
>>> all((0,1,2,3))
False
>>> all([])
True
>>> all(())
True # 注意:空元祖,空列表返回值返回為True
>>> all(('','','','')) # 空字符串元組為False
False
>>> all('')  #空字符串為True
True


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM