Python 逆引き集 | 数値・計算:余りを求める

Python Python
スポンサーリンク
スポンサーリンク

Pythonで余りを求める基本を、実務で使える形で身につける

Pythonを実務で使えるようになるためには、足し算や引き算だけでなく、「余りを求める計算」も確実に理解しておく必要があります。余りは一見すると算数の基本に見えますが、実務では非常によく使います。たとえば、偶数と奇数の判定、在庫の箱詰め、ページ分割、一定回数ごとの処理、曜日計算、ローテーション処理など、さまざまな場面で登場します。

初心者のうちは、余りと聞くと「割り算のあまり」というイメージだけで終わりがちです。しかしPythonでは、余りを求める演算子を使いこなせると、条件分岐や繰り返し処理がぐっと実務的になります。単なる計算問題ではなく、「規則性を見つけて処理を分ける」ための武器になるのが余りです。

この記事では、Pythonで余りを求める方法を、初心者向けに順番に説明します。演算子の基本から、実務でどう使うか、どこで注意するべきかまで、例題、コード例、テンプレートを交えながら詳しく解説します。

まず知っておきたい余りとは何か

余りとは、割り算をしたときに割り切れずに残る数のことです。たとえば、10を3で割ると、商は3で余りは1です。Pythonでは、この余りを % 演算子で求めます。

# 10を3で割った余りを求める
result = 10 % 3

print(result)  # 1
Python

この % は「パーセント」ではなく、「剰余演算子」と呼ばれることが多いです。意味としては「割ったときの余りを返す」と覚えておけば大丈夫です。

余りを求める基本の形

書き方はとてもシンプルです。

# 基本の書き方
a = 17
b = 5

remainder = a % b

print(remainder)  # 2
Python

このコードでは、17を5で割った余りである2が表示されます。まずは「a % b は、aをbで割った余りを返す」と覚えることが出発点です。

余りが実務でなぜ重要なのか

余りは、単に数字を求めるためだけのものではありません。実務では、一定のルールに基づいて処理を分けたいときにとても役立ちます。特に「何個ごと」「何回ごと」「何番目ごと」といった規則性を扱う場面で頻繁に使います。

  • 偶数か奇数かを判定する
  • 商品を箱に詰めたときの余りを求める
  • 一覧を一定件数ごとに区切る
  • 曜日や順番を循環させる
  • 3件ごと、5件ごとなどのタイミングで特別な処理をする
  • ページ分割で最後に余る件数を求める

このように、余りは「規則的な処理の分岐」を作るための基本技術です。初心者のうちに慣れておくと、条件分岐やループの理解も一気に進みます。

まずは簡単な例で余りの感覚をつかむ

最初は小さな数字で動きを確認すると理解しやすいです。

# いろいろな余りを確認する
print(10 % 3)  # 1
print(8 % 2)   # 0
print(14 % 5)  # 4
print(7 % 7)   # 0
Python

ここで大事なのは、割り切れると余りは0になるという点です。たとえば 8 % 2 は0ですし、7 % 7 も0です。

この「余りが0かどうか」は、実務で非常によく使います。なぜなら「割り切れるかどうか」を判定できるからです。

余りが0なら割り切れる

# 割り切れるかどうかを判定する
number = 12

if number % 3 == 0:
print("3で割り切れます。")
else:
print("3で割り切れません。")
Python

この考え方は、倍数判定、偶数奇数判定、一定間隔の処理など、非常に幅広く応用できます。

偶数と奇数を判定する

余りの最も有名で、最も実用的な使い方の1つが、偶数と奇数の判定です。2で割った余りが0なら偶数、1なら奇数です。

# 偶数か奇数かを判定する
number = 7

if number % 2 == 0:
print("偶数です。")
else:
print("奇数です。")
Python

これは初心者向けの基本問題によく出ますが、実務でも意外と使います。たとえば、行ごとに背景色を変える、偶数番目だけ処理を変える、交互に表示を切り替えるといった場面です。

例題:交互に処理を変える

# 行番号によって交互に表示を変える
for i in range(1, 6):
if i % 2 == 0:
print(i, "行目: 偶数行です。")
else:
print(i, "行目: 奇数行です。")
Python

このように、余りは単なる算数ではなく、表示やロジックの切り替えにも使えます。

箱詰めやページ分割で余りを使う

実務で非常によくあるのが、「何個ずつ分けたときに何個余るか」を求める場面です。これは在庫管理、配送、ページング、データ分割などでよく登場します。

例題:商品を箱に詰めたときの余りを求める

1箱に6個入るとして、25個の商品を箱に詰めたとき、何個余るかを求めます。

# 1箱に入る個数
items_per_box = 6

# 全体の商品数
total_items = 25

# 余る個数を求める
remaining_items = total_items % items_per_box

print("余る個数は", remaining_items, "個です。")
Python

結果は1になります。25個を6個ずつ分けると、4箱分入って1個余るからです。

商と余りをセットで考える

実務では、余りだけでなく「何個分入るか」という商もあわせて使うことが多いです。商は // で求められます。

# 商と余りを同時に求める
items_per_box = 6
total_items = 25

# 満杯の箱数
full_boxes = total_items // items_per_box

# 余る個数
remaining_items = total_items % items_per_box

print("満杯の箱数は", full_boxes, "箱です。")
print("余る個数は", remaining_items, "個です。")
Python

この // と % の組み合わせは非常に重要です。配送、在庫、ページ分割、時間計算などで何度も出てきます。

一定回数ごとに処理を行う

余りは「何回ごとに特別な処理をするか」を決めるときにも役立ちます。たとえば、5件ごとに区切り線を入れる、10件ごとにログを出す、といった処理です。

# 5件ごとに区切りを入れる
for i in range(1, 16):
print("データ", i)

# 5件ごとに区切りを表示する
if i % 5 == 0:
print("-----")
Python

この考え方は、実務で非常によく使われます。たとえば、一覧画面で一定数ごとにレイアウトを変える、バッチ処理で一定件数ごとに進捗を出す、などです。

曜日や順番のローテーションに使う

余りは、順番を循環させる処理にも向いています。たとえば、担当者を順番に割り当てる、曜日番号を繰り返す、色をローテーションする、といった場面です。

例題:担当者を順番に割り当てる

# 担当者リスト
members = ["田中", "佐藤", "鈴木"]

# 10件のタスクに順番に担当者を割り当てる
for task_number in range(10):
member_index = task_number % len(members)
print("タスク", task_number + 1, "の担当者は", members[member_index], "です。")
Python

この例では、担当者が3人なので、タスク番号を3で割った余りを使って順番に割り当てています。余りを使うことで、配列の範囲を超えずに繰り返し利用できます。

入力値から余りを求める

実務では、固定の数字だけではなく、ユーザー入力やファイルから読み込んだ値を使って余りを求めることが多いです。その場合は、文字列を整数に変換する必要があります。

# ユーザー入力から余りを求める
number = int(input("整数を入力してください: "))
divisor = int(input("割る数を入力してください: "))

remainder = number % divisor

print("余りは", remainder, "です。")
Python

注意点:0で割ることはできない

ここは非常に重要です。余りを求める計算でも、0で割ることはできません。これは通常の割り算と同じです。

# 0で割ることを防ぐ
number = int(input("整数を入力してください: "))

if divisor == 0:
print("エラー: 0では割れません。")
else:
remainder = number % divisor
print("余りは", remainder, "です。")
Python

実務では、外部入力をそのまま信用しないことが重要です。入力値の検証は、バグ防止だけでなく安全性の面でも大切です。

初心者がつまずきやすいポイントを深掘りする

余りの計算は簡単そうに見えて、初心者が混乱しやすい部分があります。ここをしっかり理解すると、応用力が大きく上がります。

余りと割り算の結果を混同しない

10 % 3 は1ですが、10 / 3 は約3.3333です。余りは割り算の結果そのものではなく、「割り切れずに残った部分」だけを返します。

# 割り算と余りの違いを確認する
print(10 / 3)  # 3.3333333333333335
print(10 % 3)  # 1
Python

この違いを曖昧にすると、必要な値が商なのか余りなのか分からなくなってしまいます。

割り切れる場合は余りが0になる

これは非常に大切な性質です。余りが0なら「ちょうど割り切れた」と判断できます。このルールは条件分岐で非常によく使います。

入力値は文字列なので、そのままでは計算できない

input() の結果は文字列です。そのため、整数に変換しないと余り計算はできません。

# 文字列のままだと計算できない
text_number = input("整数を入力してください: ")

# 整数に変換する
number = int(text_number)
<br>
print(number % 2)
Python

負の数を含む余りは少し挙動が特殊

初心者の段階ではまず正の整数で慣れるのがおすすめですが、実務では負の数が混ざることもあります。Pythonの余りは、割る側の数の符号に影響を受けるため、直感と違う結果に見えることがあります。

# 負の数を含む余りの例
print(-10 % 3)  # 2

この挙動は初心者には少し分かりにくいため、まずは「通常の業務ロジックでは正の整数を中心に考える」でも十分です。ただし、負の値を扱う可能性がある処理では、事前に動作確認することが大切です。

実務で役立つテンプレート集

ここでは、余り計算でよく使うテンプレートを、すぐ再利用しやすい形でまとめます。

テンプレート1:偶数・奇数を判定する

# 偶数か奇数かを判定するテンプレート
number = int(input("整数を入力してください: "))

# 2で割った余りで判定する
if number % 2 == 0:
print("偶数です。")
else:
print("奇数です。")
Python

テンプレート2:商と余りを同時に求める

# 商と余りを同時に求めるテンプレート
total_items = 25
items_per_box = 6

# 商を求める
full_boxes = total_items // items_per_box

# 余りを求める
remaining_items = total_items % items_per_box

print("満杯の箱数:", full_boxes)
print("余る個数:", remaining_items)
Python

テンプレート3:一定回数ごとに処理する

# 3回ごとに特別な処理をするテンプレート
for i in range(1, 11):
print("現在の回数:", i)

# 3回ごとにメッセージを表示する
if i % 3 == 0:
print("3回ごとの処理です。")
Python

テンプレート4:0除算を防いで余りを求める

# 安全に余りを求めるテンプレート
number = int(input("整数を入力してください: "))
divisor = int(input("割る数を入力してください: "))

# 0で割らないように確認する
if divisor == 0:
print("エラー: 0では割れません。")
else:
remainder = number % divisor
print("余りは", remainder, "です。")
Python

実務を意識した例題で理解を固める

例題1:在庫を箱詰めしたときの余りを求める

# 在庫数
stock = 53

# 1箱に入る個数
items_per_box = 10

# 余る個数を求める
remaining_stock = stock % items_per_box

print("箱に入りきらず余る個数は", remaining_stock, "個です。")
Python

例題2:一覧表示で4件ごとに改行する

# 1から12までのデータを4件ごとに区切る
for i in range(1, 13):
print(i, end=" ")

# 4件ごとに改行する
if i % 4 == 0:
print()
Python

この例は画面表示や帳票出力の考え方につながります。

例題3:担当者を交代で割り当てる

# 担当者一覧
staff_list = ["Aさん", "Bさん", "Cさん"]

# 7件の問い合わせを順番に割り当てる
for i in range(7):
index = i % len(staff_list)
print("問い合わせ", i + 1, "の担当者は", staff_list[index], "です。")
Python

これは実務でもかなり使いやすい考え方です。ローテーション処理の基本として覚えておくと便利です。

余りを使いこなすための学習ステップ

余りの計算を本当に使えるようになるには、次の順番で練習すると理解しやすいです。

  • まずは % の基本を覚え、簡単な数字で結果を確かめる
  • 余りが0なら割り切れる、というルールを身につける
  • 偶数・奇数判定に使ってみる
  • // と組み合わせて商と余りを同時に扱う練習をする
  • 一定回数ごとの処理やローテーション処理に応用する
  • 入力値を使う場合は int() と0チェックもセットで考える

この順番で学ぶと、単なる計算記号ではなく、条件分岐や繰り返しの道具として余りを理解できるようになります。

まとめ

Pythonで余りを求める処理は、初心者向けの基礎でありながら、実務でも非常に使用頻度が高い重要な技術です。% 演算子を使うことで、割り算の余りを求められるだけでなく、偶数奇数の判定、箱詰め、ページ分割、一定回数ごとの処理、ローテーション処理など、さまざまな実践的なロジックを作れるようになります。

特に重要なのは、次の点です。

  • a % b は、aをbで割った余りを返します
  • 余りが0なら、ちょうど割り切れています
  • 偶数奇数の判定では % 2 が基本です
  • // と組み合わせると、商と余りを同時に扱えます
  • 一定回数ごとの処理やローテーション処理に応用できます
  • 0で割ることはできないため、事前チェックが必要です
  • 入力値は文字列なので、int() で整数に変換する必要があります

余りを使いこなせるようになると、Pythonの条件分岐や繰り返し処理が一気に実務的になります。単なる算数の延長として終わらせず、「規則的に処理を分けるための道具」として理解することが大切です。

タイトルとURLをコピーしました