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

如何在Python中用好短路機(jī)制

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

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

讓我們通過幾個(gè)簡(jiǎn)單的例子總結(jié)Python中可用的幾種短路機(jī)制:

1.X or Y

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

而當(dāng)or左邊部分邏輯判斷為False時(shí),則會(huì)返回右邊部分的結(jié)果:

2.X and Y

類似X or Y的機(jī)制,X and Y會(huì)在X邏輯判斷為False時(shí)提前終止后續(xù)的運(yùn)算,只返回X部分的結(jié)果:

3.any()

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

而只要any()按順序遇到第一個(gè)邏輯判斷為True的結(jié)果,也會(huì)觸發(fā)短路,正如下面的例子中只花費(fèi)3秒就完成了判斷過程,因?yàn)檠h(huán)到1時(shí)觸發(fā)了短路:

4.all()

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

4.1「比較運(yùn)算符」

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

4.2「實(shí)際使用示例」

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

這里我們隨意寫幾個(gè)具有時(shí)間成本的函數(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']

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

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

相關(guān)文章

  • Python正則表達(dá)式總結(jié)分享

    Python正則表達(dá)式總結(jié)分享

    這篇文章主要介紹了Python正則表達(dá)式總結(jié)分享,包括正則表達(dá)式基礎(chǔ)以及Python正則表達(dá)式標(biāo)準(zhǔn)庫的完整介紹及使用示例,需要的朋友可以參考一下
    2022-03-03
  • python從入門到實(shí)踐之字典

    python從入門到實(shí)踐之字典

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Python生成pdf文件的方法

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

最新評(píng)論