4.6。 そして、 及び または 特殊文字
Python ,, と し、 または あなたが同じことを期待するとして、ブール論理の計算を行います。しかし、彼らはブール値を返しませんが、実際の値の比較のいずれかを返します。
例4.15。 そして、 はじめに
>>> 'A' と'B' 'B' >>> ' と'B' '' >>> 'A' および'B' 及び'C' 'C'
使用 して ブール値のコンテキストで正しい値に左の計算式から、とき。0、 「」、 [] 、() 、 {} 、 なし ブール偽環境の、何かが真です。幸いなことに、ほとんどすべて。デフォルトでは、EnvironmentクラスのインスタンスBoolean trueのですが、クラスインスタンスの特定のクラス、このような計算方法がfalseで定義することができます。あなたはになります第5章クラスと特別な方法を学びました。すべてのブール環境が真である、その場合 と 最後の値を返します。この例では、と 計算 「」 真である場合、 「B」 計算は、最終的に戻り、真である 「B」を。 | |
ブール値がfalseの環境であれば、 そして 最初の偽の値を返します。この例では、「」 最初の偽の値です。 | |
すべての値が真であるので、 そして 、本当の最後の値を返す「C」を。 |
例4.16。 または 導入
>>> 'A' または'B'
' >>> ' または'B' 'B' >>> '' または[] または{} {} >>> DEF sidefx():... プリント"sidefxで()" ... リターン1 >>> '' 又はsidefx()''
あなたがいる場合は Cハッカーの言語に精通している必要があり BOOL ? A : bの 場合の式、 ブール値が trueの場合、式はevalutes 、そうでない場合は 、B。基づいて 、Pythonの と と や 仕事、あなたは同じことを達成することができます。
使用4.6.1 および-や トリックを
しかし、この以来、 Python式ばかりブール論理演算ではない憲法の特定の言語、 および、または トリックや C言語の BOOL ? A : Bの 非常に重要な差異文法。場合は falseであなたが期待するように、式が機能しません。(私はこの問題にそれを投げた伝えることができますか?回以上?)
そして-や スキル、つまり BOOL と 、A または Bの とき式は、 値がブール値のコンテキストで偽である、としてではなく、 C言語式の BOOL ? : Bの ような作業。
で AND-OR トリックの背後にある本当のトリックことを確実にするためである 値がfalseになることはありません。最も一般的な方法を作ることである ことが 、[ A ] 、 B になる [ B ]は、値のリストの最初の要素を返し、なければならない か、 bは 1です。
今までは、このトリックはそれの価値よりも多くのトラブルのように見えるかもしれません。結局のところ、使用して いる場合 のステートメントは、同じことを達成することができ、なぜこのすべての大騒ぎを通過しますか?ああ、多くの場合、あなたがいることを知っているので、あなたは、2つの定数値の間で選択する必要があり 値は常に真であるので、あなたはこの単純な構文を使用して心配することはできません。より複雑な安全なフォームの場合は、そうする正当な理由があります。例えば、中に Pythonでいくつかのケース 場合 のステートメントは、のように、許可されていない ラムダ 関数。