Python で割り算をするときの繰り上げと切り捨て
3つのやり方がある。
1. 演算子のみを使う。
これがオススメ。欠点は、切り上げが伝わり辛い。利点は、表記が簡潔で実行速度が 10 倍速く、何も import しなくていい。
# 切り捨て 4 // 3 # 切り上げ -(-4 // 3)
2. math モジュールを使う。
オススメしない。利点は、切り上げが伝わりやすいこと。欠点は、表記が冗長になり 10 倍遅く、math を import しないといけない。
import math # 切り捨て math.ceil(4 / 3) # 切り上げ math.floor(4 / 3)
3. int モジュールを使う。
オススメしない。利点は、無い。整数であることを強調したい時は、有効だと思います。欠点は、表記が冗長になり 10 倍遅い。
# 切り捨て int(4 / 3) # 切り上げ # 無し
◯ 実行速度を比較する。
「1. 演算子のみを使う。」が、一番速い。10 倍も速い。
$ python -m timeit "4 // 3" 100000000 loops, best of 3: 0.0132 usec per loop $ python -m timeit "(-(-4 // 3))" 100000000 loops, best of 3: 0.0132 usec per loop $
$ python -m timeit -s "import math" "math.ceil(4 / 3)" 10000000 loops, best of 3: 0.136 usec per loop $ python -m timeit -s "import math" "math.floor(4 / 3)" 10000000 loops, best of 3: 0.136 usec per loop $
$ python -m timeit "int(4 / 3)" 10000000 loops, best of 3: 0.169 usec per loop $