ホームページ > バックエンド開発 > Python チュートリアル > Python の「and」および「or」演算子は非ブール値に対してどのように動作しますか?

Python の「and」および「or」演算子は非ブール値に対してどのように動作しますか?

Patricia Arquette
リリース: 2024-12-21 17:53:10
オリジナル
752 人が閲覧しました

How Do Python's

非ブール値を使用した「and」と「or」の謎めいた動作を解明する

プログラミングの分野では、論理演算子「and」と「or」 「制御フローと意思決定において極めて重要な役割を果たします。ただし、非ブール値で使用すると、その動作が謎めいたものになる可能性があります。これらの演算子の内部の仕組みを調べて、隠されたロジックを明らかにしましょう。

and 演算子の本当の性質

「and」演算子はオペランドを順番に評価します。いずれかのオペランドが False (0、空の文字列、None など) と評価される場合、「and」演算子は直ちにその Falsy 値を返します。これは「短絡」として知られています。すべてのオペランドが True の場合、式の最後の値が返されます。

指定した例では、両方のオペランドが True であるため、「10 and 7-2」は 5 を返します。ただし、最初のオペランドが False であるため、「0 and 7-2」は 0 を返します。

or 演算子の秘密を明らかにする

「and,」と同様「or」演算子はオペランドを順番に評価します。 "and" とは異なり、最初に見つかった Truthy 値、またはすべてのオペランドが False の場合は式の最後の値を返します。

2 番目の例では、"10 or 7-2" は 10 を返します。最初のオペランドは True です。 「7-2」式は決して評価されません。一方、「7-2」は真実であるため、「0 または 7-2」は 5 を返します。

正当性と信頼性

これらの演算子の使用非ブール値を使用することは、特定の状況では正当で信頼できるアプローチとなる可能性があります。ただし、予期しない結果を避けるために、彼らの行動を徹底的に理解することが不可欠です。

潜在的な落とし穴

注意すべき落とし穴の 1 つは、意図しないショートです。たとえば、式「if x and y(z)」の場合:

  • x が False の場合、y(z) は評価されません。
  • x が True で、かつy(z) は例外を発生させますが、例外は捕捉されずに伝播します。

一般的には、次のことを明示的にチェックすることをお勧めします。このような場合、副作用を実行する前に偽の値を使用してください。

結論

Python の "and" 演算子と "or" 演算子は、副作用を実行するための簡潔で便利な方法を提供します。ブール値以外の値でも論理評価が可能です。彼らの行動を理解することで、よくある落とし穴を避けながら、彼らの力を効果的に利用することができます。

以上がPython の「and」および「or」演算子は非ブール値に対してどのように動作しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート