🚀

Pythonの初心者レッスンーーPython演算子

2024/06/13に公開

シーリズの目次

Pythonの初心者レッスンをここにまとめています。
https://zenn.dev/datasciencekun/articles/319e0f4b4021c5

Pythonの演算子は、値を操作するために使用される記号やキーワードです。Pythonにはさまざまな種類の演算子があり、それぞれ異なる操作を実行します。以下に、Pythonの主要な演算子をカテゴリごとに示します。

算術演算子

Pythonの算術演算子は、数値を操作するために使用される基本的な演算子です。以下に、Pythonの算術演算子をテーブル形式で説明します。

演算子 名前 説明
+ 加算 両方のオペランドの合計を返します。 5 + 38
- 減算 左オペランドから右オペランドを引きます。 5 - 32
* 乗算 両方のオペランドの積を返します。 5 * 315
/ 除算 左オペランドを右オペランドで割ります。 5 / 22.5
// 整数除算 左オペランドを右オペランドで割った整数商を返します。 5 // 22
% 剰余 左オペランドを右オペランドで割った余りを返します。 5 % 21
** べき乗 左オペランドを右オペランドで累乗します。 5 ** 225

比較演算子

Pythonの比較演算子は、2つの値を比較し、比較結果を真(True)または偽(False)で返す演算子です。以下に、Pythonの比較演算子をテーブル形式で説明します。

演算子 名前 説明
== 等しい 左右のオペランドが等しい場合にTrueを返します 5 == 3False
!= 等しくない 左右のオペランドが等しくない場合にTrueを返します 5 != 3True
> より大きい 左オペランドが右オペランドより大きい場合にTrueを返します 5 > 3True
< より小さい 左オペランドが右オペランドより小さい場合にTrueを返します 5 < 3False
>= 以上 左オペランドが右オペランド以上の場合にTrueを返します 5 >= 3True
<= 以下 左オペランドが右オペランド以下の場合にTrueを返します 5 <= 3False

論理演算子

Pythonの論理演算子は、複数の条件を組み合わせて評価するために使用される演算子です。以下に、Pythonの論理演算子をテーブル形式で説明します。

演算子 名前 説明
and 論理積 両方の条件がTrueの場合にTrueを返します。 True and FalseFalse
or 論理和 少なくとも一方の条件がTrueの場合にTrueを返します。 True or FalseTrue
not 否定 条件がFalseの場合にTrueを返します。 not TrueFalse

代入演算子

Pythonの代入演算子は、変数に値を代入する際に使用する特殊な演算子です。代入演算子は、変数に新しい値を格納するための基本的な方法を提供しますが、その中には複合代入演算子も含まれます。以下に、Pythonの代入演算子をテーブル形式で説明します。

演算子 名前 説明
= 代入 右のオペランドの値を左のオペランドに代入します。 x = 5
+= 加算代入 左オペランドに右オペランドを加えて代入します。 x += 3 (x = x + 3)
-= 減算代入 左オペランドから右オペランドを引いて代入します。 x -= 3 (x = x - 3)
*= 乗算代入 左オペランドに右オペランドを掛けて代入します。 x *= 3 (x = x * 3)
/= 除算代入 左オペランドを右オペランドで割って代入します。 x /= 3 (x = x / 3)
//= 整数除算代入 左オペランドを右オペランドで整数除算して代入します。 x //= 3 (x = x // 3)
%= 剰余代入 左オペランドを右オペランドで割った余りを代入します。 x %= 3 (x = x % 3)
**= べき乗代入 左オペランドを右オペランドで累乗して代入します。 x **= 3 (x = x ** 3)

ビット演算子

Pythonのビット演算子は、整数値のビットレベルでの操作を行うための演算子です。主に2進数表現の値に対して使用され、ビット毎の操作を行うことができます。以下に、Pythonのビット演算子をテーブル形式で説明します。

演算子 名前 説明
& AND 両方のビットが1の場合に1を返し、それ以外の場合は0を返します。 5 & 31
| OR 少なくとも一方のビットが1の場合に1を返します。 5 | 37
^ XOR 両方のビットが異なる場合に1を返し、同じ場合は0を返します。 5 ^ 36
~ NOT ビットの反転(1を0に、0を1に)を行います。 ~5-6
<< 左シフト 左オペランドのビットを右オペランドの数だけ左にシフトします。 5 << 110
>> 右シフト 左オペランドのビットを右オペランドの数だけ右にシフトします。 5 >> 12

メンバーシップ演算子

Pythonのメンバーシップ演算子は、特定の値がコレクション(リスト、タプル、集合、文字列など)のメンバーであるかどうかを確認するために使用される演算子です。Pythonでは、2つの主要なメンバーシップ演算子があります。

  1. in 演算子: 右オペランド(コレクション)に左オペランドの値が含まれている場合に True を返します。
  2. not in 演算子: 右オペランド(コレクション)に左オペランドの値が含まれていない場合に True を返します。
    これらの演算子は、特にリスト、タプル、集合、文字列などのデータ構造での要素の存在を確認する際に便利です。

in演算子の使用例:

my_list = [1, 2, 3, 4, 5]
print(3 in my_list)  # 出力: True
print(6 in my_list)  # 出力: False

not in演算子の使用例:

my_string = "Hello, world!"
print('H' not in my_string)  # 出力: False
print('z' not in my_string)  # 出力: True

同一性演算子

Pythonの同一性演算子(identity operators)は、オブジェクトのメモリ上の同一性を比較するための演算子です。Pythonでは、2つの同一性演算子が提供されています。

  1. is演算子: 左オペランドと右オペランドが同じオブジェクトを参照している場合にTrueを返します。
  2. is not演算子: 左オペランドと右オペランドが異なるオブジェクトを参照している場合にTrueを返します。
    これらの演算子は、オブジェクトのメモリ上のアドレス(参照先)が同じかどうかをチェックします。このため、数値や文字列などの不変オブジェクトでは、値が同じであっても異なるメモリ領域に格納されている場合は False を返します。

is演算子の使用例:

a = [1, 2, 3]
b = a
print(a is b)  # 出力: True (aとbは同じオブジェクトを参照している)

x = 10
y = 10
print(x is y)  # 出力: True (小さい整数オブジェクトはメモリ内で再利用されるため、同じオブジェクトを参照する)

is not演算子の使用例:

c = [1, 2, 3]
d = [1, 2, 3]
print(c is not d)  # 出力: True (cとdは異なるオブジェクトを参照している)

p = "hello"
q = "hello"
print(p is not q)  # 出力: False (文字列オブジェクトは同じ値を持つ場合、同じオブジェクトを参照する)

演算子の優先順位

Pythonの演算子の優先順位(operator precedence)は、式内で演算が実行される順序を定義します。優先順位が高い演算子は、低い演算子よりも先に評価されます。以下に一般的な演算子の優先順位を示します。優先順位が高い順から低い順に演算子が表示されています。

優先順位 演算子 説明
1 () パレンテシス (2 + 3) * 4
2 ** 指数演算 2 ** 3
3 +x, -x, ~x 単項プラス、単項マイナス、ビット反転 -x
4 *, /, //, % 乗算、除算、整数除算、剰余 10 * 2, 10 / 3
5 +, - 加算、減算 2 + 3, 5 - 1
6 <<, >> 左シフト、右シフト 5 << 2, 5 >> 1
7 & ビット論理積 5 & 3
8 ^ ビット排他的論理和 5 ^ 3
9 ` ` ビット論理和
10 <, >, <=, >=, ==, !=, is, is not, in, not in 比較演算 x < y, a in b
11 not 論理否定 not x
12 and 論理積 x and y
13 or 論理和 x or y

Discussion