1
A
回答
8
你range(100)
包含0和0布爾值是False
:
In [1]: bool(0)
Out[1]: False
而對於其他任何數量的計算結果爲True
。函數all
僅當其參數的所有元素評估爲True
時,纔會返回True
,請參閱其manual(在給定示例中的if
語句隱式地採用每個項目的布爾值)。看到這裏包括0與否的區別:
In [2]: all(range(10)) # 0..9
Out[2]: False
In [3]: all(range(1,10)) # 1..9
Out[3]: True
2
因爲range
產生的第一個數字是0。
>>>range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 0 is evaluated to false in boolean expressions
>>>bool(0)
True
# making range start at 1
>>>all(range(1, 100))
True
相關問題
- 1. 爲什麼這個JavaScript表達式評估爲false?
- 2. 爲什麼表達式(0 == 0&1 == 1)評估爲False?
- 3. 爲什麼這個表達式繼續評估爲0
- 4. 爲什麼這兩個表達式評估爲不同的值?
- 5. 爲什麼這個表達式在JavaScript中被評估爲「a」?
- 6. 爲什麼Python不正確地評估這個表達式?
- 7. 爲什麼在VB.Net中評估爲false?
- 8. 爲什麼list.append評估爲false?
- 9. 爲什麼這個表達式按照這個順序進行評估?
- 10. 爲什麼這個正則表達式在perl中不能評估爲true?
- 11. 爲什麼LLDB無法評估這個表達?
- 12. 爲什麼這些xsl:當測試總是被評估爲false?
- 13. 爲什麼以下表達式被評估爲true?
- 14. FunctionN#==評估爲False
- 15. 爲什麼評估這兩個php表達式的結果不同?
- 16. 爲什麼NSExpression不正確地評估這個數學表達式?
- 17. 這個表達式評估什麼? (bash shell腳本)
- 18. 爲什麼Excel的「評估」方法是一般表達式評估器?
- 19. Python如何評估這個表達式?
- 20. 有人可以解釋爲什麼這個序言查詢評估爲false?
- 21. 評估表達式爲Excel公式
- 22. 爲什麼這個javascript正則表達式返回false?
- 23. 爲什麼這個java正則表達式返回false?
- 24. 爲什麼這個邏輯表達式在python False中?
- 25. C++表達式評估。 「評估」是什麼意思?
- 26. 爲什麼_ = $ = + [],++ _ +''+ $評估爲10
- 27. 爲什麼「評估lambda表達式在調試器中無效」?
- 28. AngularJS /材料:爲什麼不評估表達式?
- 29. 表達式評估 - 爲什麼括號更改「this」引用?
- 30. 爲什麼斷點不能評估表達式?
當心你的「falsiness」測試,因爲'[] ==假即使'not []'爲'True',也是'False'。用'not'或明確轉換爲'bool'來測試謬誤更準確。 '0 == False'測試只是因爲執行'False'的方式。 – SethMMorton
@SethMMorton感謝您的支持。我會更新'bool(0)'的答案。但是我期望如果'[] == False'那麼'not []'是否等於true,是嗎? –
編號'not'或'bool'使用對象的__nonzero__方法(python 3.x中的'__bool__')。 '=='使用'__eq__'。當你使用'=='時,它需要另一個列表,所以當將它自身與'False'進行比較時,它會看到它不相同並返回'False'。當你使用'not'或'bool'時,它會「查看自身內部」來確定它是否爲「假」或「真」。 – SethMMorton