我目前正在用python撰寫一個模擬框架,然后將其移至C。
假設我需要 8 次比較進行進一步評估。
A=q<x<r
B=q<y<r
C=q<z<r
D=q<t<r
if C:
if A:
AC
elif B:
BC
else:
C
elif D:
if A:
AD
elif B:
BD
else:
D
elif A:
A
else:
B
A、B、C、D 都是布林值。我認為這比呼叫q<x<rA、q<y<rB 等要快得多。
我的問題是:
if A:也叫比較?它有特定的名稱嗎?- 用陳述句替換嵌套 if
if A and C:對計算時間有何影響?
如果我問了一個愚蠢的問題,我很抱歉,我現在不知道要搜索的關鍵字是否重復。
提前致謝。
uj5u.com熱心網友回復:
if A:也叫比較?它有特定的名稱嗎?
嗯,不知道有沒有專門的名字。我會呼叫A一個身份運算式,If 陳述句評估它的真值。至少最后一部分是檔案所說的
用 if A 和 C: 陳述句替換嵌套 ifs 對計算時間有何影響?
Python 的位元組碼編譯器沒有做很多優化。你寫的就是你得到的。一些例外情況適用,例如while True回圈實際上并不測驗 的真值True,它只是編譯為無限回圈。
在您的情況下,您應該注意您進行了不必要的比較。如果 C 為真,您就不必測驗 D。因此,只有在有助于避免冗余比較的情況下才執行此類操作。
至于和之間的區別if A: if B::if A and B:沒有,假設產生的控制流是相同的。請記住,布爾運算式是短路的。在 Python 位元組碼中,兩者大致如下所示:
LOAD_FAST 1 (A)
POP_JUMP_IF_FALSE <else-branch>
LOAD_FAST 2 (B)
POP_JUMP_IF_FALSE <else-branch>
<insert-if-branch-here>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/482616.html
上一篇:根據R中的條件更改特定列值
下一篇:IF AND陳述句
