2016-06-25 7 views
-5
x = False 

if x: 
    print 'x was True!' 
else: 
    print 'I will be printed in any case where x is not true' 

コードの最初の行で、x = Falseの値を割り当てます。ブーリアンに基づいたこの基本的なPythonコードはどのように機能しますか?

「x:if」という行が何を意味するのか理解したいと思います。 xがFalseの値を持つとき、 'if x:'という行は 'if False:'として実行されることを意味しません。したがって、「xは真だった!印刷する必要があります。

代わりに、「xが真でない場合はどこでも印刷されます」というメッセージが印刷されます。

ブーリアンの仕組みを理解する上で問題があると思います。どこが間違っていますか?

+0

https://docs.python.org/3/reference/compound_stmts.html#if – vaultah

+1

値がtrueの場合、if節が実行されます。だから、xがFalseの場合は、「印刷はx 『は本当だった!』」「実行されず、else句になる代わりに。 –

+0

私は条件文でブール演算子を混同だと思います。ありがとうございました。 –

答えて

0

else ifブロックは、if条件がfalseの場合にのみ実行されます。 ここでFalseを指定すると、elseブロックにジャンプします。

0

場合... else文の構文は次のとおりです。ブロックが実行される場合

if boolean_expression : 
    # statement(s) will execute if the boolean expression is true 
else 
    # statement(s) will execute if the boolean expression is false 

ブール式がTrueに評価された場合、その後、そうでない場合は、他のブロックが実行されます。

2

Pythonは英語を理解しません。それはのアイデアを持っていませんprintの後に何が引用符で実際にを意味します。したがって、実行が行print 'x was True!'に達すると、それは盲目的にそのテキストを印刷します。しかし実行はその行にを取得しません。

if some_expression: 
    do_this_stuff() 
else: 
    do_that_stuff() 

最初に

some_expressionが評価されます。
ブール値がTrueの場合、do_this_stuff()が呼び出されます。
some_expressionのブール値がFalseの場合は、do_that_stuff()が呼び出されます。

コードのif x:は、xFalseであるため、else部分のコードのみが実行されます。


ifを次の式が任意の表現することができ、それが実際のブールTrueまたはFalseである必要はありません。彼らはブールコンテキストに表示されたときにPythonで

は、様々な種類の「ヌル」のオブジェクトが偽であると考えられている:これは数字のゼロ、空の文字列''、空のリスト[]、空のタプル()、空を含み辞書{}、および空のセットset()。私はあなたがそのパターンを見ることができると思う。 :)ヌル以外のオブジェクトはTrueとみなされます。

これは、使い慣れたコードをより簡潔かつ読みやすくする便利な機能です。

関連する問題