Python の `divmod()` 関数は、2つの数値を除算して、商と余りを同時に取得できる便利な関数です。この記事では、`divmod()` の使い方と実践的な例を紹介します。
divmod()関数の基本的な使い方
`divmod()` 関数は以下のような書式で使用します:
quotient, remainder = divmod(被除数, 除数)戻り値はタプル型で、(商, 余り)の形式で返されます。
使用例
基本的な整数の除算
result = divmod(7, 3)
print(result) # 出力: (2, 1)
# タプルの要素を個別の変数に代入
quotient, remainder = divmod(7, 3)
print(f"商: {quotient}") # 出力: 商: 2
print(f"余り: {remainder}") # 出力: 余り: 1負の数を使用する場合
result = divmod(-7, 3)
print(result) # 出力: (-3, 2)
result = divmod(7, -3)
print(result) # 出力: (-3, -2)浮動小数点数での使用
result = divmod(7.5, 2.2)
print(result) # 出力: (3.0, 0.9000000000000004)divmod()の活用シーン
1. 時間計算
minutes = 125
hours, mins = divmod(minutes, 60)
print(f"{hours}時間{mins}分") # 出力: 2時間5分2. ページネーション
total_items = 100
items_per_page = 30
full_pages, remaining_items = divmod(total_items, items_per_page)
print(f"完全なページ数: {full_pages}") # 出力: 3
print(f"残りのアイテム数: {remaining_items}") # 出力: 10注意点
- 0による除算はZeroDivisionErrorを引き起こします
- 浮動小数点数を使用する場合、計算誤差が生じる可能性があります
- タプルが返されるため、必要に応じて個別の変数に代入して使用します
まとめ
`divmod()` 関数は、Pythonで除算の商と余りを効率的に取得できる便利な関数です。時間計算やページネーションなど、実践的な場面で活用できます。基本的な整数の計算から、負の数や浮動小数点数まで対応しているため、様々な用途に対応可能です。