Python: 演算子の一覧
Pythonの演算子一覧です。
目次
比較演算子(== != <= ...)
| 演算子 | 意味 |
|---|---|
| == | 等値 |
| != | 不等値 |
| < | 小なり |
| <= | 小なりイコール |
| > | 大なり |
| >= | 大なりイコール |
| in | 左辺が右辺に存在する |
| not in | 左辺が右辺に存在しない |
| is | 左辺と右辺が同一のオブジェクト |
| is not | 左辺と右辺が同一オブジェクトでない |
ありがちな記述ミス
比較演算子でプログラミング初心者がやりがちなミスは次の2つです。
- 「==(等値演算子)」をうっかり「=(代入演算子)」と書いてしまう。
- 「<=」と「>=」の順番をまちがえて「=>」と「=<」のように「=」記号を先に書いてしまう。
in演算子
in演算子はリストなどのコレクション内に、
特定の要素が存在するかどうかを調べる場合に使用します。
次のサンプルコードでは
配列arrの要素に変数nと同じ値が存在するかどうかを調べています。
arr = [1, 2, 3]
n = 2
if n in arr:
print("True")
else:
print("False")
# 実行結果
True
算術演算子(+ - * / ...)
| 演算子 | 意味 |
|---|---|
| + | 加算 |
| - | 減算 |
| * | 乗算 |
| ** | べき乗 |
| / | 除算 |
| // | 除算(小数点は切り捨て) |
| % | 余り(除算の余り) |
除算、「/」と「//」の違い
Pythonには除算を行うための演算子が2つあります。 「/」は小数点以下の値まで取得できますが、 「//」は小数点部分は切り捨てられます。
print(5 / 4) # 1.25 print(5 // 4) # 1
どちらもゼロで割るとエラーになるので注意してください。
除算の余りを求める「%」
除算の余りを知りたい場合は「%」を使います。
print(5 % 4) # 1 print(9 % 5) # 4
アルゴリズムで除算の余りを用いて
ロジックを構築することがあり、結構重宝する演算子です。
「%」も0で割るとエラーになります。
ビット演算子(& | ...)
| 演算子 | 意味 |
|---|---|
| ~ | ビット反転 |
| & | AND |
| | | OR |
| ^ | XOR |
| << | 左シフト |
| >> | 右シフト |
代入演算子(= += -= ...)
| 演算子 | 意味 |
|---|---|
| = | 右辺の値を左辺に代入 |
| += | 左辺=左辺 + 右辺 |
| -= | 左辺=左辺 – 右辺 |
| *= | 左辺=左辺 * 右辺 |
| /= | 左辺=左辺 / 右辺 |
| %= | 左辺=左辺 % 右辺 |
| **= | 左辺=左辺 ** 右辺 |
| //= | 左辺=左辺 // 右辺 |
| |= | 左辺=左辺 | 右辺 |
| ^= | 左辺=左辺 ^ 右辺 |
| <<= | 左辺=左辺 << 右辺 |
| >>= | 左辺=左辺 >> 右辺 |
Pythonには「++」や「--」がありません。 代わりに「+=」「-=」を使って、「a += 1」「a -= 1」のように記述します。
論理(ブール)演算子(and or not)
| 演算子 | 意味 |
|---|---|
| and | 論理積 |
| or | 論理和 |
| not | 否定 |
論理演算子はif文の条件式で使われること多い演算子です。
andとorは条件式が2つ以上ある場合に使い、
notは論理値(True/False)をひっくり返す(逆にする)場合に使います。
and、or、notのそれぞれの意味を見ていきます。
# aが10で、かつbが20の場合 if a == 10 and b == 20: # aが10、又はbが20の場合 if a == 10 or b == 20: # aが10でない場合 if not(a == 10):
余談ですが、論理演算子の名前の由来について。
条件式は最終的にTrue/Falseの論理値に置き換わります。
ですから「True and True」や「True or False」のようにand・or・notの演算対象は
論理値(True/Flase)になります。
論理値に対して演算を行うことから「論理演算子」と言われています。
文字列演算子(+ * [] ...)
| 演算子 | 意味 |
|---|---|
| + | 連結 |
| * | 繰り返し |
| [n] | i番目 |
| [n:m] | n番目からm番目まで |
| [:m] | 最初からm番目まで |
| [n:] | n番目から最後まで |
| [n:m:s] | n番目からm番目まで、ステップ数s |
三項演算子(条件演算)(if else)
変数 = 「Trueの場合の値」 if 「条件」 else 「Falseの場合の値」
三項演算子(条件演算)の具体例
s = "high" if a > 50 else "low"
上の条件演算は下の if else文と同じ意味です。
if a > 50:
s = "high"
else:
s = "low"