コンテンツにスキップ

Pythonのチュートリアル: モジュロ演算子の使い方と修正法

[

Python モジュロ演算子の使い方: % オペレーターの活用方法

Python Tricks Dictionary Merge

Pythonでは、数値を扱う際に使用できるさまざまな算術演算子がサポートされています。その中でも、モジュロ演算子%)は、2つの数値を割った際の余りを返す演算子です。

このチュートリアルでは、以下の内容について学びます:

  • 数学における「モジュロ」の仕組み
  • Pythonのモジュロ演算子の異なる数値型への適用方法
  • モジュロ演算の結果を計算する方法
  • クラス内で.__mod__()をオーバーライドしてモジュロ演算子を使用する方法
  • 実世界の問題を解決するためにPythonのモジュロ演算子をどのように使用するか

Pythonのモジュロ演算子は、時に見落とされることがありますが、この演算子に関する正確な理解を持っていれば、Pythonのスキルアップに非常に役立つツールとなるでしょう。

無料特典: Python チートシートをダウンロードして、Python 3の基本事項(データ型、辞書、リスト、関数など)を学びましょう。

数学におけるモジュロ演算

「モジュロ」という言葉は、モジュラー算術と呼ばれる数学の分野からきています。モジュラー算術では、固定の数値セット上で整数の演算を行います。この数値セット上で行われる算術演算は、ある特定の数(モジュラスと呼ばれる)に達すると、その次は最初の数に戻ってくるようになります。

モジュラー算術におけるもっとも身近な例は、12時間制の時計です。12時間制の時計は、1から12までの固定の値を持ちます。12時間制の時計では、数を数える際に12に達したら1に戻るというルールがあります。12時間制の時計は「モジュロ 12」と分類されることがあります。

モジュロ演算子は、数値をモジュラスと比較して、モジュラスの範囲内に制約された等価の数値を取得する場合に使用されます。

たとえば、午前8時の9時間後は何時になるかを判断したいとします。12時間制の時計では、単純に8に9を足すことはできません。なぜなら、それだと17になってしまい、12を超えてしまうからです。この場合、17という結果を12で割り、モジュロ(mod)を取ることで、12時間制の文脈での等価な値を得る必要があります:

Text

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5

Copied!

17 mod 125を返します。これは、午前8時の9時間後は午後5時であることを意味します。この計算は、数値17mod 12に適用して、12時間制の範囲内に等価な値である5を求めることによって行われました。

以下では、Pythonでモジュロ演算子を使うための基本的な使い方や実際の例を詳しく解説していきます。

Pythonモジュロ演算子の基本

整数型を使ったモジュロ演算子の使い方

整数型にモジュロ演算子を使用する場合、結果は2つの整数の割り算の余りとなります。以下の例をご覧ください:

result = 15 % 4
print(result) # Output: 3

上記のコードでは、整数15を整数4で割った余りが3であるため、結果として3が出力されます。

浮動小数点数を使ったモジュロ演算子の使い方

浮動小数点数の場合、モジュロ演算子を使用することもできます。ただし、厳密な結果を求めるのではなく、浮動小数点数同士の余りを求めた場合の近似値が返されます。以下の例をご覧ください:

result = 15.5 % 4.2
print(result) # Output: 3.0999999999999988