最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python條件分支?if?語句全講解(一文掌握)

 更新時(shí)間:2024年10月11日 09:26:07   作者:這可就有點(diǎn)麻煩了  
在Python編程中,布爾運(yùn)算符有明確的優(yōu)先級(jí)順序,影響代碼邏輯判斷,從高到低依次是:括號(hào)()、not、and、or,括號(hào)用于明確運(yùn)算順序,not具有次高優(yōu)先級(jí),影響單個(gè)布爾值,and和or則根據(jù)優(yōu)先級(jí)順序結(jié)合布爾值,正確理解和應(yīng)用這些優(yōu)先級(jí)對(duì)于編寫有效和準(zhǔn)確的條件語句至關(guān)重要

如果我拿出下面的代碼,閣下該做何應(yīng)對(duì)?

if not reset_excuted and (terminated or truncated):
	...
else:
    ...

運(yùn)算符優(yōu)先級(jí)

在 Python 中,布爾運(yùn)算符的優(yōu)先級(jí)從高到低的順序如下:

  • 括號(hào) ():最高優(yōu)先級(jí),可以用于明確運(yùn)算順序。
  • not:次高優(yōu)先級(jí)。
  • and:次低優(yōu)先級(jí)。
  • or:最低優(yōu)先級(jí)。

優(yōu)先級(jí)解析示例

示例 1: 使用括號(hào)

a = True
b = False
c = True
result = (a and not b) or c

在這個(gè)例子中:

  • 括號(hào) 首先被計(jì)算:
    • a and not b 中 not b 計(jì)算為 not False,結(jié)果為 True
    • 然后,True and True 計(jì)算為 True。
  • 最后,整體表達(dá)式變?yōu)?nbsp;True or c,結(jié)果是 True。

示例 2: 不使用括號(hào)

x = False
y = True
z = False
result = x or y and not z

在這個(gè)例子中:

  • 優(yōu)先級(jí) 按照 not > and > or
    • not z 計(jì)算為 not False,結(jié)果是 True
  • 然后表達(dá)式轉(zhuǎn)為 x or y and True。
  • 接著 y and True 計(jì)算為 True
  • 最終計(jì)算為 x or True,結(jié)果是 True。

復(fù)雜示例

p = True
q = False
r = False
result = not (p and q) or r

在這個(gè)示例中:

  • 括號(hào) 首先被計(jì)算:
    • p and q 計(jì)算為 True and False,結(jié)果是 False
  • 然后,not False 計(jì)算為 True。
  • 最終表達(dá)式變?yōu)?nbsp;True or r,結(jié)果是 True。

復(fù)雜if語句判斷

在表達(dá)式 if not a and b 中,not 只對(duì) a 生效,不影響 b。

  • not 的優(yōu)先級(jí)高于 and,這意味著它會(huì)先處理 a 的值。
  • 首先計(jì)算 not a,這將返回 a 的布爾值的相反值。
  • 然后,使用 and 運(yùn)算符將結(jié)果與 b 進(jìn)行比較。
if not para_A and (para_B or para_C):
    print("進(jìn)入上面的分支")
else:
    print("進(jìn)入下面的分支")

回到開頭的示例,細(xì)細(xì)的捋一捋,在這段代碼中:

在這里,not只對(duì)para_A生效,而不對(duì)(para_B or para_C)生效

要推算在什么情況下進(jìn)入上面的分支或下面的分支,可以分析條件的每個(gè)部分。

分析條件

  • not para_A:要求 para_A 為 False。

    • 這意味著要進(jìn)入上面的分支,para_A 必須是 False。
  • (para_B or para_C):要求 para_B 或 para_C 至少有一個(gè)為 True。

    • 這意味著只要 para_B 為 True 或 para_C 為 True,這個(gè)部分就成立。

進(jìn)入上面的分支的條件

整體條件為 not para_A and (para_B or para_C),因此要進(jìn)入上面的分支,必須滿足以下條件:

  • 條件 1para_A 是 False。
  • 條件 2para_B 是 True 或 para_C 是 True(至少有一個(gè)為 True)。

進(jìn)入下面的分支的條件

為了進(jìn)入下面的分支,條件需要不成立,即:

  • 條件 Apara_A 是 True

    • 這時(shí) not para_A 為 False,條件就不成立。
  • 條件 Bpara_A 是 False,但 para_B 和 para_C 都是 False。

    • 這時(shí) (para_B or para_C) 為 False,條件也不成立。

總結(jié)條件表

para_Apara_Bpara_C結(jié)果
FalseTrueFalse進(jìn)入上面的分支
FalseFalseTrue進(jìn)入上面的分支
FalseTrueTrue進(jìn)入上面的分支
TrueFalseFalse進(jìn)入下面的分支
TrueTrueTrue進(jìn)入下面的分支
FalseFalseFalse進(jìn)入下面的分支

結(jié)論

  • 進(jìn)入上面的分支:當(dāng) para_A 為 False,且 para_B 或 para_C 至少有一個(gè)為 True。
  • 進(jìn)入下面的分支:當(dāng) para_A 為 True 或者 para_A 為 False,但 para_B 和 para_C 都為 False。

多分支語句elif

都寫那么多了,干脆再補(bǔ)點(diǎn)東西顯得更完整吧

在 Python 中,elif 是 “else if” 的縮寫,用于在 if 語句中進(jìn)行多重條件判斷。它允許你在第一個(gè) if 條件為 False 的情況下繼續(xù)檢查其他條件,從而實(shí)現(xiàn)更多的分支邏輯。

if condition1:
    # 當(dāng) condition1 為 True 時(shí)執(zhí)行的代碼
elif condition2:
    # 當(dāng) condition1 為 False 且 condition2 為 True 時(shí)執(zhí)行的代碼
elif condition3:
    # 當(dāng) condition1 和 condition2 都為 False 且 condition3 為 True 時(shí)執(zhí)行的代碼
else:
    # 當(dāng)上面的所有條件都為 False 時(shí)執(zhí)行的代碼

德摩根定律

在j實(shí)際代碼應(yīng)用中,你基本用不上這個(gè)定律,上面的東西已經(jīng)可以解決絕大部分問題了。但如果程序非要在if條件語句上向你發(fā)難,至少你也知道怎么應(yīng)對(duì)

德摩根定律是布爾代數(shù)中的兩個(gè)重要定律,它們提供了關(guān)于邏輯運(yùn)算(與、或和非)之間關(guān)系的重要公式。這兩個(gè)定律如下:

第一條定律

not(A or B)≡notA and notB

解釋:否定 A 或 B 相當(dāng)于 A 和 B 的否定相與。

第二條定律

not(A and B)≡notA or notB

解釋:否定 A 且 B 相當(dāng)于 A 的否定或 B 的否定。

舉例說明

我們可以通過幾個(gè)示例來理解這些定律:

示例 1:第一條定律

考慮 A = True 和 B = False

  • 計(jì)算 not(A or B)
    • A or B 是 True
    • not(A or B) 是 False
  • 計(jì)算 not A and not B
    • not A 是 False
    • not B 是 True
    • not A and not B 是 False

結(jié)果是一致的:not(A or B) = False 和 not A and not B = False

示例 2:第二條定律

考慮 A = True 和 B = False

  • 計(jì)算 not(A and B)
    • A and B 是 False
    • not(A and B) 是 True
  • 計(jì)算 not A or not B
    • not A 是 False
    • not B 是 True
    • not A or not B 是 True

同樣,結(jié)果是相等的:not(A and B) = True 和 not A or not B = True

到此這篇關(guān)于Python條件分支 if 語句全講解的文章就介紹到這了,更多相關(guān)Python條件分支 if 語句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python循環(huán)語句介紹

    Python循環(huán)語句介紹

    大家好,本篇文章主要講的是Python循環(huán)語句介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • python批量壓縮圖像的完整步驟

    python批量壓縮圖像的完整步驟

    本文分享的內(nèi)容來源于一次做項(xiàng)目的經(jīng)驗(yàn),也就是從那之后才體會(huì)到了python強(qiáng)大的文件批處理能力,這篇文章主要給大家介紹了關(guān)于python批量壓縮圖像的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • Python Queue模塊詳解

    Python Queue模塊詳解

    這篇文章主要介紹了Python Queue模塊詳解,需要的朋友可以參考下
    2014-11-11
  • Python實(shí)現(xiàn)圖片與視頻互轉(zhuǎn)代碼實(shí)戰(zhàn)(親測有效)

    Python實(shí)現(xiàn)圖片與視頻互轉(zhuǎn)代碼實(shí)戰(zhàn)(親測有效)

    圖片轉(zhuǎn)視頻,視頻轉(zhuǎn)圖片手機(jī)一操作,立馬轉(zhuǎn)換過來,那么基于代碼是如何操作的呢?下面小編給大家?guī)砹薖ython實(shí)現(xiàn)圖片與視頻互轉(zhuǎn)代碼實(shí)戰(zhàn),感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • Python?selenium模塊的安裝和配置教程

    Python?selenium模塊的安裝和配置教程

    這篇文章主要為大家介紹了python中selenium模塊的安裝和配置環(huán)境變量教程、提取數(shù)據(jù)操作、無頭模式,有需要的朋友可以借鑒參考下,希望能夠?qū)Υ蠹矣兴鶐椭?/div> 2022-10-10
  • Python socket模塊ftp傳輸文件過程解析

    Python socket模塊ftp傳輸文件過程解析

    這篇文章主要介紹了Python socket模塊ftp傳輸文件過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Django的models中on_delete參數(shù)詳解

    Django的models中on_delete參數(shù)詳解

    這篇文章主要介紹了Django的models中on_delete參數(shù)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python使用pygame模塊編寫俄羅斯方塊游戲的代碼實(shí)例

    Python使用pygame模塊編寫俄羅斯方塊游戲的代碼實(shí)例

    這篇文章主要介紹了Python使用pygame模塊編寫俄羅斯方塊游戲的代碼實(shí)例,最基本的方塊變換和行消除等功能都在代碼中一一體現(xiàn),需要的朋友可以參考下
    2015-12-12
  • Python 開發(fā)工具PyCharm安裝教程圖文詳解(新手必看)

    Python 開發(fā)工具PyCharm安裝教程圖文詳解(新手必看)

    PyCharm是一種Python IDE,帶有一整套可以幫助用戶在使用Python語言開發(fā)時(shí)提高其效率的工具,比如調(diào)試、語法高亮、Project管理、代碼跳轉(zhuǎn)、智能提示、自動(dòng)完成、單元測試、版本控制。今天通過本文給大家分享PyCharm安裝教程,一起看看吧
    2020-02-02
  • Python中 pickle 模塊的 dump() 和 load() 方法詳解

    Python中 pickle 模塊的 dump() 和 load()&

    Python 的 pickle 模塊用于實(shí)現(xiàn)二進(jìn)制序列化和反序列化,一個(gè)對(duì)象可以被序列化到文件中,然后可以從文件中恢復(fù),這篇文章主要介紹了Python中 pickle 模塊的 dump() 和 load() 方法詳解,需要的朋友可以參考下
    2022-12-12

最新評(píng)論

岑溪市| 济南市| 丰都县| 丰镇市| 桃江县| 阿图什市| 宜川县| 东丰县| 大冶市| 韶关市| 隆安县| 梁平县| 新安县| 兴化市| 永新县| 蒲城县| 英德市| 井冈山市| 宁陵县| 望奎县| 二连浩特市| 青河县| 伊宁市| 南投市| 株洲市| 桐城市| 岱山县| 英吉沙县| 岗巴县| 淮安市| 同德县| 古田县| 神木县| 霞浦县| 岐山县| 梧州市| 务川| 新郑市| 高台县| 宁乡县| 渭源县|