下面將打印'ok'
:爲什麼Python在if語句中將字符串/數字計算爲True仍然myNumber == True返回False?
if 5:
print('ok')
然而,當我這樣做:
print(5 == True)
輸出爲False
。
字符串發生同樣的事情。爲什麼?
下面將打印'ok'
:爲什麼Python在if語句中將字符串/數字計算爲True仍然myNumber == True返回False?
if 5:
print('ok')
然而,當我這樣做:
print(5 == True)
輸出爲False
。
字符串發生同樣的事情。爲什麼?
你正在測試不同的東西在這裏。
的if
只是檢查,如果表達式的bool
(也見"Truth value testing")是True
不如果身份等於True
。
那麼實際上是由if
測試是:
>>> bool(5) == True
True
真正具有價值1.如果設置True = 5
(只在Python 2)平等成爲現實。 'if'語句就像檢查警衛是否不是0或無,因此每個非0的數字都可以輸入到第一個塊中。事實上,False的值爲0.
因此Python在這種情況下隱式地將數字和字符串轉換爲布爾值? – Petar
那麼'if'(還有'和','或',while'等)需要一個「真值」,所以它不是真的含蓄。 – MSeifert