Pythonの演算子関数とは?operatorモジュールの基本と使い方
Pythonには、算術演算・論理演算・比較演算・ビット演算といった数学的な操作を行うための標準ライブラリ関数が用意されています。これらの関数はすべてoperatorモジュールにまとめられています。
operatorモジュールを利用するには、まず標準ライブラリからインポートする必要があります。
import operator
この記事では、operatorモジュールが提供する演算子関数のうち、特に使用頻度の高い「算術演算」と「比較(関係)演算」の関数を、サンプルコードと実行結果あわせて解説します。
算術演算の関数
まずは、四則演算など基本的な計算を行う関数から見ていきましょう。主な関数は以下の通りです。
| 番号 | 関数と説明 |
|---|---|
| 1 | add(x, y) 2つの数値 x と y を加算します。単純な足し算を実行し、 |
| 2 | sub(x, y) x から y を減算します。 |
| 3 | mul(x, y) 2つの数値 x と y を乗算します。 |
| 4 | truediv(x, y) x を y で割った結果を返します。小数(浮動小数点数)が返される場合があります。 |
| 5 | floordiv(x, y) x ÷ y の商(小数点以下を切り捨てた整数)を求めます。 |
| 6 | mod(x, y) x ÷ y の余りを取得します。 |
| 7 | pow(x, y) x の y 乗(べき乗)を計算します。 |
算術演算のサンプルコード
# 算術演算子
import operator
print('加算: ' + str(operator.add(56, 45)))
print('減算: ' + str(operator.sub(56, 45)))
print('乗算: ' + str(operator.mul(56, 45)))
print('真除算: ' + str(operator.truediv(56, 45))) # a / b と同じ
print('切り捨て除算: ' + str(operator.floordiv(56, 45))) # a // b と同じ
print('剰余: ' + str(operator.mod(56, 45))) # a % b と同じ
print('べき乗: ' + str(operator.pow(5, 3)))
実行結果
加算: 101 減算: 11 乗算: 2520 真除算: 1.2444444444444445 切り捨て除算: 1 剰余: 11 べき乗: 125
比較(関係)演算の関数
operatorモジュールには、<、<=、>、>=、==、!= といった比較演算子に対応する関数も含まれています。各関数は以下の通りです。
| 番号 | 関数と説明 |
|---|---|
| 1 | lt(x, y) x が y より小さいかどうかを判定します。 |
| 2 | le(x, y) x が y 以下であるかどうかを判定します。 |
| 3 | eq(x, y) x と y が等しいかどうかを判定します。 |
| 4 | gt(x, y) x が y より大きいかどうかを判定します。 |
| 5 | ge(x, y) x が y 以上であるかどうかを判定します。 |
| 6 | ne(x, y) x と y が等しくないかどうかを判定します。 |
比較演算のサンプルコード
# 比較(関係)演算子
import operator
print('より小さい: ' + str(operator.lt(5, 10)))
print('以下: ' + str(operator.le(10, 10)))
print('より大きい: ' + str(operator.gt(5, 5)))
print('以上: ' + str(operator.ge(5, 5)))
print('等しい: ' + str(operator.eq(12, 12)))
print('等しくない: ' + str(operator.ne(15, 12)))
実行結果
より小さい: True 以下: True より大きい: False 以上: True 等しい: True 等しくない: True
operatorモジュールを使うメリット
「演算子をそのまま書けばよいのになぜ関数が必要なのか」と疑問に思う方もいるでしょう。operatorモジュールの関数は、関数そのものをオブジェクトとして扱えるため、次のような場面で活躍します。
- sorted() や map() などの高階関数との組み合わせ:たとえば
sorted(data, key=operator.itemgetter(1))のように、ラムダ式を書かずに簡潔に処理を記述できます。 - 関数型プログラミング:処理を関数として変数に格納したり、引数として渡したりできます。
- 可読性の向上:意図が明確な名前付き関数としてコードを表現できます。
日常的な計算では通常の演算子で十分ですが、関数を値として扱いたい場面ではoperatorモジュールが非常に便利です。ぜひ活用してみてください。
-
Pythonの「is not」演算子とは?仕組みと使い方をわかりやすく解説
Pythonの「is not」演算子とは Pythonにおける「is not」は、同一性を比較する演算子(アイデンティティ演算子)の一つです。演算子の左右にある2つの変数が同じオブジェクトを参照している場合には False を返し、異なるオブジェクトを参照している場合には True を返します。 基本的な使い方の例 以下のコードで実際の動作を確認してみましょう。 >>> a = 10 >>> b = 20 >>> id(a), id(b) (1581561184, 1581561504) >>> a is not b
-
Pythonの「not in」演算子とは?使い方と動作をわかりやすく解説
Pythonには、要素があるシーケンス(リスト・タプル・文字列など)に含まれていないことを判定するための「not in」というメンバーシップ演算子が用意されています。 not in 演算子は、指定したシーケンスの中に変数が見つからない場合に True を返し、見つかった場合は False を返します。以下に具体的な例を示します。 >>> a = 10 >>> b = 4 >>> l1 = [1,2,3,4,5] >>> a not in l1 True >>> b not in l1 False この例で