2017-06-04 63 views
-7
if ((medicine == target) and (engineering == target)) or ((medicine == target) and (education == target)) or ((medicine == target) and (arts == target)): 
    target += 1 

我正在代碼中,如果這些condtions得到滿足,目標應該增加,但它是不是在它應該是。任何想法爲什麼?我的和/或python有什麼問題?

+2

加上括號(和正確的縮進),以表明你希望他們可以完成什麼樣的順序。 – jambrothers

+1

你可以用樣本輸入和相應的預期輸出顯示格式正確的代碼嗎? – thefourtheye

+0

@jambrothers我應該加什麼括號? – mdot

回答

-2

據我所知,在==前被選中和,所以你需要檢查A == B和A ==ç

+2

這完全不清楚。什麼是A,B和C?你認爲他們可能會認爲'和'在'=='之前得到評估嗎? –

+0

OP原本在他的源代碼3個變量,所以我稱他們爲A,B和C ... –

1

當鏈接不同的邏輯運算符,它有助於加上括號,因爲這使得它在明確哪些訂單你indend。

if ((engineering == target) and (education == target)) or ((engineering == target) and (arts == target)): 
    target += 1 

根據你如何安排括號,它會導致不同的結果。

這只是一個例子,爲了知道你需要首先明確的邏輯是什麼正確的順序。

+1

很好的建議。但是,在這種情況下,Python的優先規則已經規定OP代碼上的操作將按照與完全加括號版本相同的順序執行。所以這不會改變他們得到的結果。 –

+0

@ PM2Ring是的,我已經更新它指出它的一個例子。不幸的是,我們都不能猜測OPs邏輯是什麼。 – jambrothers