欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何在Python中用好短路機制

 更新時間:2022年02月18日 09:24:33   作者:費弗里  
這篇文章主要介紹了如何在Python中用好短路機制,Python中的短路機制非常有用,跟很多其他編程語言中的短路機制作用類似,接下來讓我們通過幾個簡單的例子總結Python中可用的幾種短路機制,需要的朋友可以參考下

不同于物理學中的「短路」(Short circuit)那般危險,Python中的短路機制非常有用,跟很多其他編程語言中的短路機制作用類似,一句話概括就是一段條件判斷表達式在從左到右按順序執(zhí)行的過程中,提前確定了表達式的True/False結果,從而終止右邊剩余的運算。

讓我們通過幾個簡單的例子總結Python中可用的幾種短路機制:

1.X or Y

X or Y是最常用的短路機制,我們都知道只要X或Y中至少有一個為True時,整段判斷表達式就為True,譬如下面的例子中,本來1 / 0會觸發(fā)ZeroDivisionError: division by zero錯誤,但因為or左邊的部分已經邏輯判斷為True,Python的短路機制就會停止后續(xù)的執(zhí)行,直接返回or左邊的結果:

而當or左邊部分邏輯判斷為False時,則會返回右邊部分的結果:

2.X and Y

類似X or Y的機制,X and Y會在X邏輯判斷為False時提前終止后續(xù)的運算,只返回X部分的結果:

3.any()

Python中的any()函數(shù)用于接受序列形式的多個等待邏輯判斷的部分,并在序列中至少有一個部分邏輯判斷為True時返回True。

而只要any()按順序遇到第一個邏輯判斷為True的結果,也會觸發(fā)短路,正如下面的例子中只花費3秒就完成了判斷過程,因為循環(huán)到1時觸發(fā)了短路:

4.all()

Python中的all()函數(shù)類似any(),會在傳入序列中每個部分邏輯判斷均為True時返回True,其也會在按順序遇到第一個False時終止后續(xù)運算:

4.1「比較運算符」

Python中用于數(shù)值大小比較的各個運算符也具有短路機制,從左到右,一旦執(zhí)行到判斷結果為False的部分都會終止運算:

4.2「實際使用示例」

當我們的代碼中涉及到條件判斷,且參與條件判斷的值具有一定的「運算成本」時,就可以靈活運用短路機制來提升運行效率,譬如我們需要根據(jù)用戶id信息向多個接口查詢其權限,全部滿足時將其標記為“超級權限”,就可以利用到短路機制。

這里我們隨意寫幾個具有時間成本的函數(shù)作為接口示意:

def api1(id_):
? ??
? ? time.sleep(1)
? ??
? ? return id_ in ['admin1', 'admin2']

def api2(id_):
? ??
? ? time.sleep(1)
? ??
? ? return id_ in ['admin1', 'admin2', 'su1', 'su2']

def api3(id_):
? ??
? ? time.sleep(1)
? ??
? ? return id_ not in ['ban1', 'ban2', 'ban3']

利用短路機制在用戶第一次沒有滿足條件時就終止后續(xù)判斷,寫法簡潔:

到此這篇關于如何在Python中用好短路機制的文章就介紹到這了,更多相關Python中妙用短路機制內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python正則表達式總結分享

    Python正則表達式總結分享

    這篇文章主要介紹了Python正則表達式總結分享,包括正則表達式基礎以及Python正則表達式標準庫的完整介紹及使用示例,需要的朋友可以參考一下
    2022-03-03
  • python從入門到實踐之字典

    python從入門到實踐之字典

    這篇文章主要為大家介紹了python字典,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • jupyter閃退怎么辦?jupyter閃退問題的解決

    jupyter閃退怎么辦?jupyter閃退問題的解決

    這篇文章主要介紹了jupyter閃退怎么辦?jupyter閃退問題的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • pandas刪除某行或某列數(shù)據(jù)的實現(xiàn)示例

    pandas刪除某行或某列數(shù)據(jù)的實現(xiàn)示例

    本文主要介紹了pandas刪除某行或某列數(shù)據(jù)的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • Python 一行代碼能實現(xiàn)喪心病狂的功能

    Python 一行代碼能實現(xiàn)喪心病狂的功能

    這篇文章主要介紹了Python 一行代碼能實現(xiàn)喪心病狂的功能,需要的朋友可以參考下
    2020-01-01
  • Python實現(xiàn)的簡單線性回歸算法實例分析

    Python實現(xiàn)的簡單線性回歸算法實例分析

    這篇文章主要介紹了Python實現(xiàn)的簡單線性回歸算法,結合實例形式分析了線性回歸算法相關原理、功能、用法與操作注意事項,需要的朋友可以參考下
    2018-12-12
  • 在python plt圖表中文字大小調節(jié)的方法

    在python plt圖表中文字大小調節(jié)的方法

    今天小編就為大家分享一篇在python plt圖表中文字大小調節(jié)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python在windows調用svn-pysvn的實現(xiàn)

    python在windows調用svn-pysvn的實現(xiàn)

    本文主要介紹了python在windows調用svn-pysvn的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • python3.7安裝matplotlib失敗問題的完美解決方法

    python3.7安裝matplotlib失敗問題的完美解決方法

    由于學習需要安裝matplotlib庫,閱讀網上教程后一直出現(xiàn)各種各樣的錯誤,下面這篇文章主要給大家介紹了關于python3.7安裝matplotlib失敗問題的完美解決方法,需要的朋友可以參考下
    2022-07-07
  • Python生成pdf文件的方法

    Python生成pdf文件的方法

    這篇文章主要介紹了Python生成pdf文件的方法,比較實用的功能,需要的朋友可以參考下
    2014-08-08

最新評論