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で除算の商と余りを効率的に取得できる便利な関数です。時間計算やページネーションなど、実践的な場面で活用できます。基本的な整数の計算から、負の数や浮動小数点数まで対応しているため、様々な用途に対応可能です。