【Python】divmod()で除法の商と余りを同時に取得する!
Pythonのdivmod()を使用すると、除法の商と余りを同時に取得することができます。
divmod()とは商と余りをタプルで返す関数であり、指定した割られる数と割る数で計算した商と余りを取得することができます。
そして、タプルで返されることからインデックスを指定すると商と余りを別々に取り出すことができます。
しかし、割る数に0を指定するとエラーになりますので注意してください。
今回はPythonのdivmod()で除法の商と余りを同時に取得する方法について以下の内容で解説していきます。
⚫︎ divmod()で除法の商と余りを同時に取得する
⚫︎ divmod()は割る数に0を指定できない
⚫︎ divmod()を使用せずに商と余りを同時に取得する方法
目次
divmod()とは
divmod()とは、商と余りをタプルで返す関数となります。
タプルで返すことからタプルの後ろにインデックスを指定すると、商と余りを別々に取り出すことができます。
divmod()の書き方
divmod()の書き方は下記となります。
1 |
divmod(割られる数, 割る数) |
divmod()のパラメータ
⚫︎ 割られる数:
割られる数を数値型で指定する
⚫︎ 割る数:
割る数を数値型で指定する
divmod()のパラメータに割られる数と割る数を指定することで、割られる数を割る数で割った時の商と余りがタプルで返されます。
除法の商と余りを同時に取得するサンプルコード
divmod()で除法の商と余りを同時に取得するサンプルコードを紹介します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
print('・divmod()で除法の商と余りを同時に取得') answer1 = divmod(5, 20) print(answer1) print('・divmod()で除法の商と余りを取り出す') print('商', answer1[0]) print('余り', answer1[1]) print('・divmod()で除法の商と余りを同時に取得') answer2 = divmod(-5, -20) print(answer2) print('・divmod()で除法の商と余りを取り出す') print('商', answer2[0]) print('余り', answer2[1]) print('・divmod()で除法の商と余りを同時に取得') answer3 = divmod(5, -20) print(answer3) print('・divmod()で除法の商と余りを取り出す') print('商', answer3[0]) print('余り', answer3[1]) print('・divmod()で除法の商と余りを同時に取得') answer4 = divmod(-5, -20) print(answer4) print('・divmod()で除法の商と余りを取り出す') print('商', answer4[0]) print('余り', answer4[1]) |
出力結果
・divmod()で除法の商と余りを同時に取得
(0, 5)
・divmod()で除法の商と余りを取り出す
商 0
余り 5
・divmod()で除法の商と余りを同時に取得
(0, -5)
・divmod()で除法の商と余りを取り出す
商 0
余り -5
・divmod()で除法の商と余りを同時に取得
(-1, -15)
・divmod()で除法の商と余りを取り出す
商 -1
余り -15
・divmod()で除法の商と余りを同時に取得
(0, -5)
・divmod()で除法の商と余りを取り出す
商 0
余り -5
divmod()で除法の商と余りを同時に取得しています。
また、divmod()で返されたタプルにインデックスを指定することで商と余りを別々に取り出すことができます。
divmod()は割る数に0を指定できない
divmod()は割る数に0を指定できません。
0を指定するとエラーが発生します。
例
1 2 3 4 |
print('・divmod()で除法の商と余りを同時に取得') answer = divmod(10, 0) print(answer) |
出力結果
ZeroDivisionError: integer division or modulo by zero
割る数が0の場合は割ることができない為、エラーが発生しています。
divmod()を使用せずに商と余りを同時に取得する方法
divmod()を使用せずに商と余りを同時に取得するには「/」と「%」の代数演算子を使用します。
例
1 2 3 4 5 6 7 8 9 10 |
print('・divmod()を使用せずに除法の商と余りを取得') div = 10 / 2 mod = 10 % 2 print('商', div) print('余り', mod) div = -10.5 / 2 mod = -10.5 % 2 print('商', div) print('余り', mod) |
出力結果
・divmod()を使用せずに除法の商と余りを取得
商 5.0
余り 0
商 -5.25
余り 1.5
「/」と「%」によって商と余りを同時に取得しています。
これは、演算で商や余りを求める際に使用していましたが、それらの演算はdivmod()で担うことができます。
今回のポイント
divmod()で除法の商と余りを同時に取得
Pythonで除法の商と余りを同時に取得するにはdivmod()を使用する。
⚫︎ divmod()のパラメータには割られる数と割る数を指定する
⚫︎ divmod()は商と余りをタプルで返す
⚫︎ divmod()で商と余りを取り出すには返されたタプルの後ろにインデックスを指定する
⚫︎ divmod()を使用せずに商と余りを同時に取得するには「/」や「%」の代数演算子を使用する
(代数演算子を使用せずに、divmod()で担うことができる)
⚫︎ divmod()は割る数に0を指定するとエラーが発生する
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。