如果我拿出下面的程式碼,閣下該做何應對?
if not reset_excuted and (terminated or truncated):
...
else:
...
前言:
消化論文程式碼的時候看到這個東西直接大腦凍結,沒想過會在這麼基礎的東西上犯難
運算子優先順序
在 Python 中,布林運算子的優先順序從高到低的順序如下:
括號 ():最高優先順序,可以用於明確運算順序。
not:次高優先順序。
and:次低優先順序。
or:最低優先順序。
優先順序解析示例
示例 1: 使用括號
a = True
b = False
c = True
result = (a and not b) or c
在這個例子中:
括號 首先被計算:a and not b 中 not b 計算為 not False,結果為 True。然後,True and True 計算為 True。
最後,整體表示式變為 True or c,結果是 True。
示例 2: 不使用括號
x = False
y = True
z = False
result = x or y and not z
在這個例子中:
優先順序 按照 not > and > or:not z 計算為 not False,結果是 True。
然後表示式轉為 x or y and True。
接著 y and True 計算為 True。
最終計算為 x or True,結果是 True。
複雜示例
p = True
q = False
r = False
result = not (p and q) or r
在這個示例中:
括號 首先被計算:p and q 計算為 True and False,結果是 False。
然後,not False 計算為 True。
最終表示式變為 True or r,結果是 True。
複雜 if 語句判斷
在表示式 if not a and b 中,not 只對 a 生效,不影響 b。
not 的優先順序高於 and,這意味著它會先處理 a 的值。
首先計算 not a,這將返回 a 的布林值的相反值。
然後,使用 and 運算子將結果與 b 進行比較。
if not para_A and (para_B or para_C):
print("進入上面的分支")
else:
print("進入下面的分支")
回到開頭的示例,細細的捋一捋,在這段程式碼中:
在這裡,not只對para_A生效,而不對(para_B or para_C)生效
要推算在什麼情況下進入上面的分支或下面的分支,可以分析條件的每個部分。
分析條件
not para_A:要求 para_A 為 False。
這意味著要進入上面的分支,para_A 必須是 False。
(para_B or para_C):要求 para_B 或 para_C 至少有一個為 True。
這意味著只要 para_B 為 True 或 para_C 為 True,這個部分就成立。
進入上面的分支的條件
整體條件為 not para_A and (para_B or para_C),因此要進入上面的分支,必須滿足以下條件:
條件 1:para_A 是 False。
條件 2:para_B 是 True 或 para_C 是 True(至少有一個為 True)。
進入下面的分支的條件
為了進入下面的分支,條件需要不成立,即:
條件 A:para_A 是 True。
這時 not para_A 為 False,條件就不成立。
條件 B:para_A 是 False,但 para_B 和 para_C 都是 False。
這時 (para_B or para_C) 為 False,條件也不成立。
總結條件表
結論
進入上面的分支:當 para_A 為 False,且 para_B 或 para_C 至少有一個為 True。
進入下面的分支:當 para_A 為 True 或者 para_A 為 False,但 para_B 和 para_C 都為 False。
多分支語句 elif
都寫那麼多了,乾脆再補點東西顯得更完整吧
在 Python 中,elif 是 “else if” 的縮寫,用於在 if 語句中進行多重條件判斷。它允許你在第一個 if 條件為 False 的情況下繼續檢查其他條件,從而實現更多的分支邏輯。
if condition1:
# 當 condition1 為 True 時執行的程式碼
elif condition2:
# 當 condition1 為 False 且 condition2 為 True 時執行的程式碼
elif condition3:
# 當 condition1 和 condition2 都為 False 且 condition3 為 True 時執行的程式碼
else:
# 當上面的所有條件都為 False 時執行的程式碼
德摩根定律
在 j 實際程式碼應用中,你基本用不上這個定律,上面的東西已經可以解決絕大部分問題了。但如果程式非要在if條件語句上向你發難,至少你也知道怎麼應對
德摩根定律是布林代數中的兩個重要定律,它們提供了關於邏輯運算(與、或和非)之間關係的重要公式。這兩個定律如下:
第一條定律:
not(A or B)≡notA and notB
解釋:否定 A 或 B 相當於 A 和 B 的否定相與。
第二條定律:
not(A and B)≡notA or notB
解釋:否定 A 且 B 相當於 A 的否定或 B 的否定。
舉例說明
我們可以透過幾個示例來理解這些定律:
示例 1:第一條定律
考慮 A = True 和 B = False:
計算 not(A or B):A or B 是 Truenot(A or B) 是 False
計算 not A and not B:not A 是 Falsenot B 是 Truenot A and not B 是 False
結果是一致的:not(A or B) = False 和 not A and not B = False。
示例 2:第二條定律
考慮 A = True 和 B = False:
計算 not(A and B):A and B 是 Falsenot(A and B) 是 True
計算 not A or not B:not A 是 Falsenot B 是 Truenot A or not B 是 True
chof.lxtxqh.com
chof.yuchentimes.com
chof.hebeihongqi.com
chof.ssyhmma.com
chof.hyl98.com
chof.youhezhixuan.com
chof.jilinsport.com
chof.wychyq.com
chof.gdhrgk.com
chof.jzha101.com
chof.lutuohb.com
chof.sgxinfeng.com
chof.bjyongxuan.com
chof.jxtrfund.com
chof.fyjyzsgs.com
chof.zgygzl.com
chof.clwzycgp.com
chof.wencfcw.com
chof.zmuoo.com
chof.xphysc.com
chof.kalilan.com
chof.jiexinlong.com
chof.shiyongsh.com
chof.myjhedu.com
chof.xczipper.com
chof.yjlzk.com
chof.huangpihushuichan.com
chof.yifanyuanyang.com
chof.dianyunzhisheng.com
chof.jx-tq.com
chof.shenshiapp.com
chof.hxjweiyu.com
chof.gjmsxy.com
chof.zgmcpj.com
chof.tiquality.com
chof.toto58.com
chof.lhcgzj.com
chof.gdlddb.com
chof.volanswing.com
chof.smxbsbl.com
chof.hflxzsgc.com
chof.nxttyq.com
chof.jiamuli.com
chof.banchendb.com
chof.aguailuo.com
chof.gzhajd.com
chof.gzxuezhe.com
chof.zywl9780bq.com
chof.nc-lianshun.com
chof.sp0557.com
chof.sxjnbw.com
chof.sheanxf.com
chof.fsyqd.com
chof.ygjxjgc.com
chof.cq-mba.com
chof.boni168.com
chof.kan-mei.com
chof.gxqiangli.com
chof.lzwgdn.com
chof.gz-jianyou.com
chof.zhongzhengja.com
chof.cshszgyy.com
chof.shengheyiyuan.com
chof.ybgamer.com
chof.hebeixinjinghua.com
chof.hnlrst.com
chof.gdrjzcgl.com
chof.boyuanyiren.com
chof.whxsdnhs.com
chof.sdcehb.com
chof.aisheng120.com
chof.xiekur.com
chof.wannianqngjanzhann.com
chof.whxmlyyy.com
chof.njcongchong.com
chof.newpaint-tech.com
chof.hyxxlx.com
chof.kangjishengyuan.com
chof.lidich.com
chof.dianhaoguan.com
同樣,結果是相等的:not(A and B) = True 和 not A or not B = True。