Pythonの余りと商 割り算のmod演算子、divmod

Pythonの余りと商

Pythonのあまりと商のまとめ

Pythonのあまりと商を求める演算子と関数

Pythonには、割り算のあまりと商を同時に求めるdivmod関数があります。

あまりと商を同時に求めるdivmod関数

$ cat divmod.py
#!/usr/bin/python3

# // は商を求める %はあまりを求める演算子
q = 10 // 3
r = 10 % 3
print( "10割る3 = %d あまり %d" % (q,r) )

q,r = divmod(10,3)
print( "divmodで計算" )
print( "10割る3 = %d あまり %d" % (q,r) )

実行するとこうなります。

$ ./divmod.py
10割る3 = 3 あまり 1
divmodで計算
10割る3 = 3 あまり 1

Pythonのnumpyリストのあまりを求める関数

numpyのリストの要素全部に対して、指定した数で割ったあまりを求めるのがnumpy.modという関数。

Pythonのnumpyリストのあまりを求める関数

以下は、1~20の値を代入したリストにたいして、5で割ったあまりを別のリストとして作成します。

$ cat numpymod.py
#!/usr/bin/python3

import numpy as np

# 1~20のリストを生成
list = np.array([x for x in range(1,21)])
print ( list )

# リストの数値を5で割ったあまりを新しいリストとして作成
modlist=np.mod(list,5)
print( modlist )

numpyのリストはfor文を使った内包表記で生成しています。

関連 Pythonのlist

実行するとこうなります。

$ ./numpymod.py
[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20]
[1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0]

Pythonのあまりのまとめ

まとめ

  • Pythonのあまりを求める演算子は「%」
  • divmod()関数で、商とあまりを同時に求めることが可能
  • numpy arrayに対して、numpy.mod()関数で、全要素に対して指定した値で割ったあまりを算出できる