2017-07-11 9 views
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'> 

:バラは赤い

であり、 「if条件が満たされている」という2番目のケース(ifそれは状況を記述する適切な方法です)、print()は実行されますか?

私は、正しい操作は、「これはない」「という表現は、」真ブール値に評価のみたときに実行される

if <expression>: 
    <do this> 

ようなものになるだろうと思っているだろう。 「式」がの文字列のときに「これを実行する」のはなぜですか?

+2

https://docs.python.org/3/reference/datamodel.html?highlight=__bool__#object.__bool__ – gd1

+1

非常に迅速な回答と参照をいただきありがとうございます。わかりました。 –

+3

バランスのとれた不要なダウンボォート。質問は重複として閉じなければなりませんが、* 1)あなたが探しているものが分からない場合は、同様の質問を検索することは自明ではありません。 2)私は、SOコミュニティとPythonコミュニティの新人であるOPが、恐ろしい質問を書いておらず、説明なしで-1を得る価値はないと思います。 – gd1

答えて

2

文字列 "True"はtruthyで、if条件でtrueと評価されます。

関連する問題