Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの「and」と「or」演算子の違いとは?論理演算子の基本をわかりやすく解説

Pythonにおける論理演算子の基本

Pythonでは、「and」「or」(さらに「not」)は論理演算子として定義されています。これらの演算子は、いずれも2つのオペランド(被演算子)を受け取り、それぞれのオペランドは真(True)または偽(False)に評価されます。条件分岐や繰り返し処理の制御において頻繁に使われる重要な構成要素です。

and演算子:両方がTrueのときだけTrueを返す

「and」演算子は、両方のオペランドがTrueである場合にのみTrueを返します。片方でもFalseであれば、結果は必ずFalseになります。

>>> a=50
>>> b=25
>>> a>40 and b>40
False
>>> a>100 and b<50
False
>>> a==0 and b==0
False
>>> a>0 and b>0
True

上記の例では、最初の3つの式は少なくとも一方の条件が成立していないためFalseとなり、最後の式だけが両方の条件を満たしているためTrueになっています。

or演算子:どちらか一方でもTrueならTrueを返す

「or」演算子は、少なくとも一方のオペランドがTrueであればTrueを返します。両方のオペランドがFalseである場合にのみ、結果はFalseになります。

>>> a=50
>>> b=25
>>> a>40 or b>40
True
>>> a>100 or b<50
True
>>> a==0 or b==0
False
>>> a>0 or b>0
True

この例では、最初の2つの式は片方の条件が成立しているためTrueとなり、両方の条件が不成立である3番目の式だけがFalseになっています。

真理値表で比較する

2つの演算子の動作の違いを整理すると、次の真理値表のようになります。

ABA and BA or B
TrueTrueTrueTrue
TrueFalseFalseTrue
FalseTrueFalseTrue
FalseFalseFalseFalse

補足:短絡評価(ショートサーキット)について

Pythonの「and」と「or」は短絡評価(ショートサーキット評価)を行います。「and」では左側のオペランドがFalseの時点で結果が確定するため右側は評価されず、「or」では左側のオペランドがTrueの時点で結果が確定し、同様に右側は評価されません。この特性を利用すると、無駄な計算を避けたり、条件付きの実行を簡潔に書いたりできます。

  1. Pythonの論理演算子とは?and・or・notの使い方を実例付きで解説

    条件分岐を扱うプログラミングでは、1つの条件文の中で複数の比較を行いたい場面がよくあります。たとえば、「2つの式がどちらもTrueかどうか」や「2つのうち少なくとも1つがFalseかどうか」を確認したいケースです。 そんなときに役立つのが、Pythonの論理演算子です。論理演算子を使うと、1つの条件文の中で複数の論理比較を組み合わせることができます。 この記事では、演算子の基本をおさらいしたうえで、Pythonが提供する3つの論理演算子の使い方を具体例とともにわかりやすく解説します。 Pythonにおける演算子の種類 演算子とは、Pythonで特定の操作を表す記号のことです。たとえば、

  2. C言語の演算子と式の種類を徹底解説!算術からビット演算まで

    C言語における演算子(オペレーター)とは、データに対して何らかの操作を行うための記号です。C言語の演算子は、その機能によって以下のように分類されます。算術演算子関係演算子論理演算子代入演算子インクリメント・デクリメント演算子ビット演算子条件演算子特殊演算子それぞれの演算子について、具体例とサンプルプログラムを交えながら詳しく見ていきましょう。1. 算術演算子算術演算子は、足し算や引き算などの数値計算を行うために使われます。演算子説明例a=20, b=10 の場合結果+加算(足し算)a+b20+1030-減算(引き算)a-b20-1010*乗算(掛け算)a*b20*10200/除算(割り算)a/