ブール
Pythonには、ブールと呼ばれるタイプの変数があります。 これには、TrueとFalseの2つの値があります。
コードにTrueまたはFalseを直接入力するのではなく、通常、ブール演算子からブール値を取得します。 これらは、はい/いいえの質問に答えるオペレーターです。 以下では、これらの演算子のいくつかについて説明します。
比較演算
比較は期待どおりに機能することが多い
しかし時々それらはトリッキーになることができます
比較演算子は、これまでに見た算術演算子と組み合わせることができ、事実上無限の数学的テストを表現できます。 たとえば、2の係数が1を返すことを確認することで、数値が奇数かどうかを確認できます。
比較を行うときは、=の代わりに==を使用することを忘れないでください。 n == 2と書けば、nの値について尋ねることになります。 n = 2を書き込むと、nの値が変更されます。
ブール値を組み合わせる
「and」、「or」、「not」の標準的な概念を使用してブール値を組み合わせることができます。 実際、これを行うための言葉は、and、or、notです。
これらにより、can_run_for_president関数をより正確にすることができます。
簡単に、この表現の価値を推測できますか?
(「出力」ボタンをクリックして答えを確認してください)
これに答えるには、操作の順序を理解する必要があります。
たとえば、andの前に評価されます。 これが、上記の最初の式がTrueである理由です。 左から右に評価した場合、最初にTrueまたはTrue(True)を計算し、その結果のandをFalseで取得して、最終的な値をFalseにします。
優先順位を覚えるようにすることもできますが、より安全な方法は、大括弧を使用することです。 これはバグの防止に役立つだけでなく、コードを読んだ人に意図を明確に伝えます。
たとえば、次の式について考えます。
私は今日の天気から安全だと言っています…。
- 傘があれば…
- または雨があまり強くなくて、フードがあるなら…
- それ以外の場合は、雨が降っていて就業日でない限り、私はまだ元気です
しかし、私のPythonコードは読みにくいだけでなく、バグもあります。 括弧を追加することで、両方の問題に対処できます。
読みやすさに役立つと思われる場合は、さらに括弧を追加できます。
上記の3部構成を強調するために、複数行に分割することもできます。
条件付き
ブール値は、if、elifなどのキーワードを使用して、条件ステートメントと組み合わせると最も効果的です。
if-thenステートメントと呼ばれることの多い条件付きステートメントを使用すると、ブール条件の値に基づいて、実行するコードを制御できます。 次に例を示します。
ifおよびelseキーワードは他の言語でよく使用されます。 そのよりユニークなキーワードは、「else if」の短縮形であるelifです。 これらの条件節では、elifおよびelseブロックはオプションです。 さらに、必要な数のelifステートメントを含めることができます。
特にコロン(:)と空白を使用して、コードの個別のブロックを示すことに注意してください。 これは、関数を定義したときに起こることに似ています-関数のヘッダーが:で終わり、次の行は4つのスペースでインデントされています。 後続のすべてのインデントされた行は、インデントされていない行に出会い、関数定義を終了するまで、関数の本体に属します。
ブール変換
物事をintに変換するint()と物事をfloatに変換するfloat()を見てきましたので、Pythonが物事をboolに変換するbool()関数を持っていると聞いて驚くことはないでしょう。
ブール値が期待されるif条件やその他の場所で、ブール値以外のオブジェクトを使用できます。 Pythonは暗黙的にそれらを対応するブール値として扱います。