中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解Python中 and 和 or 運算短路邏輯

發布時間:2021-10-26 10:58:55 來源:億速云 閱讀:194 作者:柒染 欄目:編程語言

本篇文章為大家展示了如何理解Python中 and 和 or 運算短路邏輯,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

短路邏輯規則如下:

表達式從左至右運算,若 or 的左側邏輯值為 True ,則短路 or 后所有的表達式(不管是 and 還是 or),直接輸出 or 左側表達式 。若 or 的左側邏輯值為 False ,則輸出or右側的表達式,不論其后表達式是真是假,整個表達式結果即為其后表達式的結果。

表達式從左至右運算,若 and 的左側邏輯值為 False ,則短路其后所有 and 表達式,直到有 or 出現,輸出 and 左側表達式到 or 的左側,參與接下來的邏輯運算。若 and 的左側邏輯值為 True,則輸出其后的表達式,不論其后表達式是真是假,整個表達式結果即為其后表達式的結果

若 or 的左側為 False ,或者 and 的左側為 True 則不能使用短路邏輯。

注意:

1、在Python中and的優先級是大于or的,而且and和or都是會返回值的并且不轉換為True和False。當not和and及or在一起運算時,優先級為是not>and>or

2、在Python中,None、任何數值類型中的0、空字符串“”、空元組()、空列表[]、空字典{}都被當作False,還有自定義類型,如果實現了  __ nonzero __ () 或 __ len __ () 方法且方法返回 0 或False,則其實例也被當作False,其他對象均為True。

下面是最簡單的邏輯運算:

        
True  
and True    
==> True                                     
True  
or True    
==> True
        True  and False   ==> False                                   True  or False   ==> True
        False and True    ==> False                                   False or True    ==> True
        False and False   ==> False                                   False or False   ==> False

接下來我們再舉一個具體的例子:

先來定義一組函數:

1>  
def a():

    2>     print ('A')

    3>     return 1

    4>  def b():

    5>     print ('B')

    6>     return 1

    7>  def c():

    8>     print ('C')

    9>     return []

    10> def d():

    11>    print ('D')

    12>    return []

    13> def e():

    14>    print ('E')

    15>    return 1   

例1:

17> 
if a() 
and b() 
and c() 
and d() 
and e():

    18>    print ('ok')

 

    #顯示結果如下

    A   

a() 為假 ,其后均為 and 語句,全部短路,最終只返回 a() 的表達式。記住,所有被短路的表達式均不會被輸出。所以,此處僅僅打印 A

例2:

17> 
if a() 
and b() 
and c() 
and d() 
and e():

    18>    print ('ok')

 

    #顯示結果如下

    A

    B

    C   

python 從左至右先執行 a() ,a() 返回的邏輯值為 True,后面是 and 語句,所以不能短路其后,繼續與 b() 進行邏輯運算,a() and b() 輸出 b() 的邏輯值 True,接著與 c() 進行邏輯運算,b() and c() 輸出 c() 的邏輯值 False,而其后均為 and 語句, 則全部短路,最終只打印了 A B C 。

例3:

17> 
if a() 
or b() 
or c() 
or d() 
or e():

    18>    print ('ok')

 

    #顯示結果如下

    A

    Ok 

    #顯示結果如下

    A

    ok   

a() 的邏輯值為 True ,其后均為 or 語句,全部短路,最終只打印了 A,而 if 語句為 True ,所以還要打印一個 ok。

例4:

    
17> 
if a() 
or b() 
or c() 
or d() 
or e():

    18>    print ('ok')

 

    #顯示結果如下

    A

    B

    C

    Ok

python 從左至右先執行 a() ,a() 返回的邏輯值為 False,后面是 or 語句,所以不能短路其后,繼續與 b() 進行邏輯運算,a() or b() 輸出 b() 的邏輯值 False,接著與 c() 進行邏輯運算,b() or c() 輸出 c() 的邏輯值 True,而其后為 or 語句, 則全部短路,最終只打印了 A B C ok。

例5:

 26> 
if a() 
and b() 
and  
c() 
and d() 
or e() 
and f() 
or g() 
and h():

    27>    print ('ok')

 

    #輸出結果如下:

    A

    E

    F

    Ok  

別以為語句很長就很難,我們好好分析一下,從左至右,首先a() 的邏輯值為 False,其后到 or 語句為止有三個 and 語句: a() and b() and c() and d(),均被短路。只輸出 a(), 得到 a() or e() 為True,輸出 e() ,得 e() and F() 為 True ,輸出 f(), 其后接 or 語句,則短路其后所有。最終只打印了A E F ok 。

上述內容就是如何理解Python中 and 和 or 運算短路邏輯,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

商城县| 特克斯县| 龙胜| 马山县| 集贤县| 广汉市| 广宁县| 东光县| 西和县| 牡丹江市| 磴口县| 桑植县| 怀来县| 北流市| 辽阳市| 习水县| 富民县| 古交市| 榆树市| 吉林省| 金塔县| 特克斯县| 龙胜| 久治县| 高阳县| 静安区| 五峰| 宜州市| 东平县| 新泰市| 剑河县| 抚顺县| 庆城县| 南京市| 屯门区| 南澳县| 沧州市| 新龙县| 克拉玛依市| 井冈山市| 五峰|