原文: The Python Modulo Operator - What Does the % Symbol Mean in Python? (Solved)‌‌
原著者: Beau Carnes
翻訳・翻案: Manabu Matsumoto

% 記号を見た時に、それが「パーセント」であると思われるかもしれませんが、Python や他の多くのプログラミング言語では、% 記号は違った意味をもちます。

Python において % 記号は剰余演算子と呼ばれています。この演算子は、左辺の項を右辺の項で除算した余りを返します。割り算の問題の余りを得るのに使用されます。

剰余演算子は +, -, /, *, **, // とともに算術演算子と見なされます。

基本的な構文は次のようになります:

a % b

上の例では、ab で割って、その余りを返します。今度は数値を使用した例を見てみましょう。

7 % 2

上の例の答えは 1 です。2 は 7 に 3 回収まり、1 が残ります。

以下の図は 7 / 27 % 2 を視覚的に表したものです ("R" は "remainder (余り)" の略です)。右側のひとつのロゴ (緑色の矢印で指してあります) が割り算の問題の余りです。これが 7 % 2 の答えでもあります。

remainder-diagram

こちらに別の例を示します:

3 % 4

この例の答えは 3 になります。4 は 3 に一度も収まらないので、元の 3 が余ります。ここで何が起こっているのかを以下の図に示します。剰余演算子は割り算を行ってからその余りを返すということを忘れないようにしましょう。ここでの余りは 3 です。

image-197

剰余演算子の使用例

剰余演算子のよくある使い方のひとつは、偶数または奇数の判定です。以下のコードは、剰余演算子を使用して 0 から 10 の間の奇数をすべて表示します。

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)

実行結果:

1
3
5
7
9