Pythonの「or」演算子と「|」演算子の違いとは?
はじめに:or と | はまったく別の演算子
Pythonには一見似ているように見える2つの演算子がありますが、その役割はまったく異なります。orは論理演算子であり、|はビット単位の演算子(ビットワイズ演算子)です。
or演算子は、任意の型の2つのオペランドを受け取り、それらを真偽値として評価します。そして、どちらか一方でもTrueと評価されればTrueを返します。両方ともFalseの場合のみFalseを返します。
or 演算子の実行例
>>> 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
上記の例を見ると、a>40 or b>40のように片方だけがTrueでも結果がTrueになることがわかります。また、orには短絡評価(ショートサーキット)という特徴があり、左側のオペランドがTrueの時点で右側は評価されません。これにより不要な計算を省くことができます。
| 演算子の働き:ビットごとの論理和
一方、|演算子は数値を2進数のビット列として扱い、対応する各ビットを比較します。どちらか一方のビットが1であれば、結果も1になります。これを「ビットごとの論理和(OR)」と呼びます。
>>> a=10 #0000 1010 >>> bin(a) '0b1010' >>> b=20 #0001 0100 >>> bin(b) '0b10100' >>> c=a|b >>> c 30 #0001 1110 >>> bin(c) '0b11110'
この例では、10(0b1010)と20(0b10100)の各ビットを比較すると、いずれかに1が立っている位置がすべて1となり、結果は30(0b11110)になります。
使い分けのポイント
or:条件分岐などで真偽値を判定したいときに使う。例:if x > 10 or x < 0:|:フラグの合成やマスク処理など、ビットレベルの操作を行いたいときに使う。
このように、orは条件式の論理判定、|はビットパターンの操作と、用途が明確に分かれています。誤って混同しないよう注意しましょう。
-
Pythonの算術演算子一覧!基本的な使い方をコード例付きで解説
Pythonには、数値計算を行うためのさまざまな算術演算子が用意されています。加算・減算・乗算・除算といった基本操作から、剰余やべき乗まで、これらの演算子を使いこなせるようになると、Pythonでのプログラミングがぐっと快適になります。この記事では、Pythonで使える主要な算術演算子の種類と、それぞれの具体的な使い方をサンプルコード付きでわかりやすく解説します。1. 「+」加算(足し算)「+」は加算演算子です。左右のオペランド(演算の対象となる値)同士を足し合わせた結果を返します。>>> a = 5 >>> b = 7 >>> c = a
-
Pythonの基本演算子一覧|7種類の演算子の使い方を徹底解説
Pythonには、値や変数に対してさまざまな処理を行うための「演算子」が多数用意されています。演算子はその役割によって、算術演算子・比較(関係)演算子・論理演算子・ビット演算子・代入演算子・同一性演算子・メンバーシップ演算子の7種類に分類されます。この記事では、それぞれの種類ごとに使い方をわかりやすく解説します。 1. 算術演算子 数値の計算に使用する最も基本的な演算子です。 +:加算(足し算) -:減算(引き算) *:乗算(掛け算) /:除算(割り算)。結果は常に浮動小数点数になる //:切り捨て除算。小数点以下を切り捨てた結果を返す %:剰余(割り算の余り) a = 10 b = 3