Python

【Python】余り(剰余)を取得する方法

この記事では、Pythonで余り(剰余)を求める方法を解説します。

Pythonでは %演算子 を使うことで簡単に余りを求めることができます。余りを使うことで奇遇を判別したり、秒から分に変換する際などに利用することができます。

それでは、余りの求め方と簡単な利用方法を見ていきましょう!

余りの求め方

Pythonでは、%演算子 を使って余りを求めることができます。

余り = 値1 % 値2

試しに余りを求めてみます。

r = 7 % 2  # 1
r = 7 % 3  # 1
r = 7 % 4  # 3
r = 7 % 5  # 2

浮動小数点数の余りも計算することができます。

r = 7 % 2.5  # 2.0
r = 7 % 3.1  # 0.7999999999999998
r = 7 % 4.6  # 2.4000000000000004
r = 7 % 5.8  # 1.2000000000000002

ブレが生じやすいので注意。

商と余りを同時に取得する

divmod()関数を使うことで商と余りを同時に取得できる。

r = divmod(7, 2)
print(r)

実行結果

(3, 1)

タプルではなくバラバラに値を受け取りたい場合は、アンパックすると楽チン。

q, r = divmod(7, 2)
print(q)
print(r)

実行結果

3
1
【Python】配列の要素を展開して変数に代入する方法を解説【アンパック】この記事では、Pythonのアンパックについて解説します。アンパックとは、配列の要素を展開し、変数に代入することを言います。また、関数の引数としてリストや辞書を展開して渡すこともでき、とても便利です。それでは、アンパックの使い方を見ていきましょう!...

余りを使ったコード

それでは、実際に余りを用いたコードを見ていきましょう!

奇遇を判別する

奇遇を判別するには2で割った余りが0かどうかで判別することができます。

num = 1

# 2で割った余りを求める
r = num % 2
print(f'余り: {r}')

# 余りが0と等しければ偶数
print(f'2で割り切れる: {r == 0}')

実行結果

余り: 1
2で割り切れる: False

もっとコンパクトに1行で記述することもできます。

num = 1

s = num % 2 == 0
print(f'2で割り切れる: {s}')

実行結果

2で割り切れる: False

あとはif文と組み合わせるだけで奇遇を判別できます。

num = 1

if num % 2 == 0:
    print(f'numは偶数')
else:
    print('numは奇数')

実行結果

numは奇数

数値型をif文に使用した際、0がFalse、それ以外の値がTrueとなる仕様を利用して比較せずとも奇遇を判別することができます。

num = 1

# 余りが出れば奇数
if num % 2:
    print('numは奇数')

# 余りがなければ偶数
else:
    print(f'numは偶数')

実行結果

numは奇数

秒を分にする

秒で記述された時間を分にしたい場合、余りを使うことで60で割り切れない場合も、変換することができます。

# 秒で表記された時間
time = 150

# 分
minute = time // 60
# 秒
second = time % 60

print(f'{minute}分{second}秒')

実行結果

2分30秒

まとめ

この記事では、余りの求め方と具体的な使用例を見てきました。

普段あんまり馴染みのない「余り」ですが、意外といろんなことができるんですね。プログラミングの世界ではけっこう使うので覚えておきましょう!

それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ

『DMM WEBCAMP COMMIT』