1
我正在對「if」語句進行快速測試,以下代碼片段會按預期的方式生成打印生成輸出。爲什麼下面的Python 3「if」有效?
案例1個
x = True
if x:
print("Roses are red")
結果>>>玫瑰是紅色的,在解釋器
另外:
type(x)
>>> <class 'bool'>
正如所預期的。
然後我嘗試:
案例2
x = "True"
if x:
print("Roses are red")
我再次得到了結果:玫瑰是紅色
和:
>>> type(x)
<class 'str'>
能有人在解釋第二種情況爲什麼「如果條件滿足」(如果這是描述這種情況的適當方式)並執行print()?
我還以爲正確的操作可能會像
if <expression>:
<do this>
其中,「做這個」被執行僅在「表達」的計算結果爲布爾 True值。爲什麼當「表達」是字符串時執行「這樣做」?
https://docs.python.org/3/reference/datamodel.html?highlight=__bool__#object.__bool__ – gd1
非常感謝您的快速回復和參考。我明白。 –
平衡不必要的downvote。這個問題必須作爲一個重複來關閉,但是* 1)如果你不太清楚你在找什麼,那麼尋找一個類似的問題並不是一件容易的事情; 2)我認爲,OP是SO社區和Python社區的新手,我沒有寫出令人震驚的問題,也沒有理由得到-1而沒有解釋。 – gd1