はじめに
divmod関数とは?
Pythonのdivmod関数は、除算と剰余計算を一度に行う便利な関数です。
数学の授業で習った除算の商と余りを求めることができます。

KindleUnlimited会員であれば、全ての本をご覧頂けます。 リストとラムダ式を理解すれば、Pythonプログラミングの世界が変わる 第1版

divmod関数の基本的な使い方
divmod関数の基本的な使い方は非常にシンプルです。
以下のように2つの数値を引数として関数を呼び出すだけです。
ソースコード例
1 |
print(divmod(10, 3)) |
出力結果
(3, 1)
この結果は10を3で割った時の商と余りを表しています。
つまり、商は3で、余りは1を意味しています。

divmod関数で負の数を扱う
divmod関数は負の数にも対応しています。
負の数を含む場合の挙動に注意が必要です。
ソースコード例
1 2 3 |
print(divmod(-10, 3)) print(divmod(10, -3)) print(divmod(-10, -3)) |
出力結果
(-4, 2)
(-4, -1)
(3, -1)
この結果は負の数を含む除算の商と余りを表しています。
Pythonでは、商の値はゼロから遠い方の整数に、余りは除数と同じ符号になるように計算されます。

divmod関数とfloat型
divmod関数は、整数だけでなく浮動小数点数(float型)も扱うことができます。
ただし、結果は少し複雑になることがありますので、その点に注意が必要です。

ソースコード例
1 2 3 4 |
print(divmod(10.5, 3)) print(divmod(-10.5, 3)) print(divmod(10.5, -3)) print(divmod(-10.5, -3)) |
出力結果
(3.0, 1.5)
(-4.0, 0.5)
(-4.0, -1.5)
(3.0, -1.5)
これらの結果は、浮動小数点数を含む除算の商と余りを示しています。
ここでも、商の値はゼロから遠い方の整数に、余りは除数と同じ符号になるように計算されます。

まとめ:divmod関数の効果的な使い方
Pythonのdivmod関数は、除算の商と余りを一度に計算できる強力なツールです。
整数だけでなく、負の数や浮動小数点数も扱うことが可能で、その特性を理解することで、より広範な計算が可能になります。
divmod関数は、コードの可読性を高め、冗長な計算を避けることができます。
ただし、負の数や浮動小数点数を扱う場合は、Pythonの特性を理解し、予期せぬエラーを防ぐことが重要です。

最後まで読んで頂き、ありがとうございました。少しでもお役にたてたなら幸いです!
