Python

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

この記事では、Pythonで余り(剰余)を求める方法を解説します。Pythonでは%演算子を使うことで簡単に余りを求めることができます。余りを使うことで奇遇を判別したり、秒から分に変換する際などに利用することができます。それでは、余りの求め方と利用方法を見ていきましょう!

余りの求め方

Pythonでは、//で小数部分を切り捨てた商、%で余りを求めることができます。

q = 7 // 2
r = 7 % 2
print(f'7 / 2 = {q} あまり {r}')

実行結果

7 / 2 = 3 あまり 1

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

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秒

まとめ

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

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

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

最短3か月でエンジニア転職『DMM WEBCAMP COMMIT』