Python 演算子完全マスター: 包括的ガイド
Python 演算子をマスターする
このチュートリアルでは、Pythonの全演算子カテゴリ(構文、振る舞い、実践例)をマスターし、よりクリーンで効率的なコードを書けるようになります。
動画: Pythonの演算子
Pythonの演算子とは?
演算子は算術または論理計算を実行する特殊記号です。演算子が作用する値をオペランドと呼びます。
例:
>>> 2+3
5
ここでは+が加算演算子、2と3がオペランド、5が結果です。
算術演算子
算術演算子は加減乗除などの数学的操作を実行。
| 演算子 | 意味 | 例 |
|---|---|---|
| + | 2オペランド加算 または 単項プラス | x + y + 2 |
| - | 右オペランドを左から減算 または 単項マイナス | x - y - 2 |
| * | 2オペランド乗算 | x * y |
| / | 左オペランドを右で除算(常にfloatを返す) | x / y |
| % | 剰余 – 除算の余り | x % y (x/yの余り) |
| // | 切り捨て除算 – 整数結果を切り下げ | x // y |
| ** | 累乗 – 左を右の累乗 | x ** y (xのy乗) |
例1: Pythonの算術演算子
x = 15
y = 4
print('x + y =', x + y)
print('x - y =', x - y)
print('x * y =', x * y)
print('x / y =', x / y)
print('x // y =', x // y)
print('x ** y =', x ** y)
出力
x + y = 19 x - y = 11 x * y = 60 x / y = 3.75 x // y = 3 x ** y = 50625
比較演算子
比較演算子は値間の関係を評価し、TrueまたはFalseを返します。
| 演算子 | 意味 | 例 |
|---|---|---|
| > | より大きい | x > y |
| < | より小さい | x < y |
| == | 等しい | x == y |
| != | 等しくない | x != y |
| >= | 以上 | x >= y |
| <= | 以下 | x <= y |
例2: Pythonの比較演算子
x = 10
y = 12
print('x > y is', x > y)
print('x < y is', x < y)
print('x == y is', x == y)
print('x != y is', x != y)
print('x >= y is', x >= y)
print('x <= y is', x <= y)
出力
x > y is False x < y is True x == y is False x != y is True x >= y is False x <= y is True
論理演算子
論理演算子and、or、notはブール式を結合します。
| 演算子 | 意味 | 例 |
|---|---|---|
| and | 両オペランドが真なら真 | x and y |
| or | 少なくとも1つ真なら真 | x or y |
| not | オペランドを否定 | not x |
例3: Pythonの論理演算子
x = True
y = False
print('x and y is', x and y)
print('x or y is', x or y)
print('not x is', not x)
出力
x and y is False x or y is True not x is False
以下はこれらの演算子を示す真理値表です。
ビット演算子
ビット演算子は整数オペランドの個々のビットを操作します。
例:2は2進で10、7は111。
x=10(00001010 2進)、y=4(00000100 2進)とします。
| 演算子 | 意味 | 例 |
|---|---|---|
| & | ビットごとのAND | x & y = 0 (00000000) |
| | | ビットごとのOR | x | y = 14 (00001110) |
| ~ | ビットごとのNOT | ~x = -11 (11110101) |
| ^ | ビットごとのXOR | x ^ y = 14 (00001110) |
| >> | 右シフト | x >> 2 = 2 (00000010) |
| << | 左シフト | x << 2 = 40 (00101000) |
代入演算子
代入演算子は変数に値を代入し、演算と代入を組み合わせた複合形式も含みます。
| 演算子 | 例 | 等価 |
|---|---|---|
| = | x = 5 | x = 5 |
| += | x += 5 | x = x + 5 |
| -= | x -= 5 | x = x - 5 |
| *= | x *= 5 | x = x * 5 |
| /= | x /= 5 | x = x / 5 |
| %= | x %= 5 | x = x % 5 |
| //= | x //= 5 | x = x // 5 |
| **= | x **= 5 | x = x ** 5 |
| &= | x &= 5 | x = x & 5 |
| |= | x |= 5 | x = x | 5 |
| ^= | x ^= 5 | x = x ^ 5 |
| >>= | x >>= 5 | x = x >> 5 |
| <<= | x <<= 5 | x = x << 5 |
特殊演算子
Pythonには同一性演算子と所属演算子もあり、高度な比較に使われます。
同一性演算子
isとis notは2つの参照が同じオブジェクトを指すかチェック。
| 演算子 | 意味 | 例 |
|---|---|---|
| is | オペランドが同一オブジェクトなら真 | x is True |
| is not | オペランドが異なるオブジェクトなら真 | x is not True |
例4: Pythonの同一性演算子
x1 = 5
y1 = 5
x2 = 'Hello'
y2 = 'Hello'
x3 = [1,2,3]
y3 = [1,2,3]
print(x1 is not y1)
print(x2 is y2)
print(x3 is y3)
出力
False True False
整数と短い文字列はインターンされるため、同一リテラルはしばしば同じオブジェクトを共有。リストは同じ要素を含んでも別オブジェクト。
所属演算子
inとnot inは、値がシーケンス、セット、辞書のキー集合に存在するかテスト。
| 演算子 | 意味 | 例 |
|---|---|---|
| in | 値がシーケンス内に見つかれば真 | 5 in x |
| not in | 値がシーケンスから absent なら真 | 5 not in x |
例5: Pythonの所属演算子
x = 'Hello world'
y = {1:'a',2:'b'}
print('H' in x)
print('hello' not in x)
print(1 in y)
print('a' in y)
出力
True True True False
文字列比較は大文字小文字を区別し、辞書チェックはキーのみを対象とすることに注意。
Python
- C#演算子完全ガイド:C#における演算子の包括的解説
- C++演算子完全ガイド:算術・代入・関係・論理・ビット演算子と実例
- C言語演算子完全ガイド:算術・関係・論理・ビット演算子
- Python データ型マスター: 実践ガイド
- Python pass文完全マスター: 実践ガイド
- Python 関数引数完全マスター: 位置引数・キーワード引数・デフォルト引数
- Python辞書完全ガイド:作成、操作、高度なテクニック
- Pythonイテレータ完全ガイド:仕組みと自作方法
- Pythonクロージャ解説:ネスト関数が変数を捕捉する仕組み
- Python datetimeマスター:日付・時刻・タイムゾーン実践ガイド
- Pythonのtime.sleep()をマスター:ベストプラクティス、マルチスレッド、実例