2017-05-08 25 views
-2

我在做一些測試,當我嘗試:基本還是差

len(pin) == (4 or 6) 

測試的一半失敗了。

然而,隨着:

(len(pin) == 4 or len(pin) == 6) 

所有測試通過。

我無法理解這兩者之間的差別。 引腳通常是一個數字,如123412345

+0

爲什麼downvote和重複?因爲這個條件'len(pin)==(4或6)'與我的問題所指出的問題是不同的。 –

回答

2

這是因爲根據優先級規則,右手側表達首先計算在第一條件即

len(pin) == (4 or 6)

在此,第一(4 or 6)求值並返回圖4(或真某些語言) 。現在,只有這些情況返回true,其中length實際上是4.

第二個條件按預期工作,因爲它將長度分別與4和6進行比較,然後對兩個布爾值應用or

+0

好吧,現在我明白了。謝謝 –

相關問題