Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの演算子関数とは?operatorモジュールの基本と使い方

Pythonには、算術演算・論理演算・比較演算・ビット演算といった数学的な操作を行うための標準ライブラリ関数が用意されています。これらの関数はすべてoperatorモジュールにまとめられています。

operatorモジュールを利用するには、まず標準ライブラリからインポートする必要があります。

import operator

この記事では、operatorモジュールが提供する演算子関数のうち、特に使用頻度の高い「算術演算」と「比較(関係)演算」の関数を、サンプルコードと実行結果あわせて解説します。

算術演算の関数

まずは、四則演算など基本的な計算を行う関数から見ていきましょう。主な関数は以下の通りです。

番号 関数と説明
1

add(x, y)

2つの数値 x と y を加算します。単純な足し算を実行し、x + y と同じ動作をします。

2

sub(x, y)

x から y を減算します。x - y と同じ動作をします。

3

mul(x, y)

2つの数値 x と y を乗算します。x * y と同じ動作をします。

4

truediv(x, y)

x を y で割った結果を返します。小数(浮動小数点数)が返される場合があります。x / y と同じ動作をします。

5

floordiv(x, y)

x ÷ y の商(小数点以下を切り捨てた整数)を求めます。x // y と同じ動作をします。

6

mod(x, y)

x ÷ y の余りを取得します。x % y と同じ動作をします。

7

pow(x, y)

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 より小さいかどうかを判定します。x < y と同じ動作をします。

2

le(x, y)

x が y 以下であるかどうかを判定します。x <= y と同じ動作をします。

3

eq(x, y)

x と y が等しいかどうかを判定します。x == y と同じ動作をします。

4

gt(x, y)

x が y より大きいかどうかを判定します。x > y と同じ動作をします。

5

ge(x, y)

x が y 以上であるかどうかを判定します。x >= y と同じ動作をします。

6

ne(x, y)

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モジュールが非常に便利です。ぜひ活用してみてください。

  1. 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

  2. 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 この例で