あまり知られていないPythonの「あまり」の求め方【割り算、剰余算、divmod】
- 作成日: 2022-03-23
- 更新日: 2023-12-24
- カテゴリ: Python
あまり知られていないPythonの「あまり」の求め方
Pythonでは演算で「割り算のあまり」を求めることができます。
これはよく知られた方法があります。
しかし「割り算の結果とあまりを同時に求める方法」は、あまりだけにあまり知られていません。
これは結論から言うとdivmod関数を使います。
この記事ではPythonの基本的な演算である割り算、剰余算と、divmodの使い方を解説します。
関連記事
頭が悪い人のPythonのevalの使い方
頭がいい人のPythonのexitの使い方
状態遷移による文字列パースのテクニック【Python】
形態素解析で代名詞+助詞+名詞を文章から抜き出す【Python, 自然言語処理, Janome】
在宅・未経験、Pythonで稼ぐ方法は?【取引・宣伝・広告】
割り算の方法
Pythonでは割り算は↓のように書きます。
a = 3 / 2
print(a) # 1.5
↑のように「/
」を使うと実数による結果が求まります。
これを整数にしたい場合は「//
」を使います。
a = 3 // 2
print(a) # 1
式の右側を「0」にしてしまうとゼロ除算エラーが発生します。
2 / 0
Traceback (most recent call last):
File "zerodiv.py", line 1, in <module>
2 / 0
ZeroDivisionError: division by zero
例外ZeroDivisionError
が発生しますが、この例外はキャッチすることもできます。
try:
2 / 0
except ZeroDivisionError as e:
print('I got error.', e) # I got error. division by zero
ZeroDivisionError
が発生しそうなときはtry文でキャッチしておく選択肢もあります。
割り算の余りの求め方
割り算のあまり(剰余)を求めるには「%
」を使います。
a = 3 % 2
print(a) # 1
↑の場合、「3」を「2」で割ると「1あまり1」になります。
そのため変数a
には「1」が入ります。
この剰余演算子は割り算の仲間の演算子なので、ゼロ除算エラーが発生します。
2 % 0
Traceback (most recent call last):
File "zeromod.py", line 1, in <module>
2 % 0
ZeroDivisionError: integer division or modulo by zero
あまり知られていないdivmodの使い方
divmod関数は割り算の結果とあまりを同時に取得できる関数です。
結果はタプルで返ってきます。
a, b = divmod(3, 2) # 3 / 2 かつ 3 % 2
print(a, b) # 1 1
divmodの第1引数には割る対象、第2引数には割る数を指定します。
組み込み関数 — divmod — Python 3.10.0b2 ドキュメント
おわりに
今回はPythonの割り算と剰余算(Mod)、そしてdivmodの使い方を解説しました。
これらを押さえておけばPythonの割り算はパーペキですね。
🦝 < あまりだけにあまり知られていない
🐭 < おっさん・・・