浮動小数点数演算では割り算は遅いからやっちゃだめというのは、数値計算の常識ですが、Pythonで実験してみよう。
Pythonで数値計算なんてしねえよ、あるいは速度を考えなきゃならないことをさせないよ、とは思うが、Pythonのが楽なので。
実行時間の計測にはtimeitモジュールを使います。
割り算でやると、
>>> timeit.timeit('1.0/2.0', '') 0.07303404808044434
となります。しかし、同じ答えを出す計算を掛け算に変えると、
>>> timeit.timeit('1.0*0.5', '') 0.03916192054748535
とおよそ半分の時間で計算することができる。
整数演算なら2の累乗の掛け算、割り算ならばシフト演算を使えば早くなることもある。可読性悪くなるし、コンパイラに任せるべきことだから、普通やらないけど。
>>> timeit.timeit('1*8', '') 0.0399320125579834 >>> timeit.timeit('1<<3', '') 0.04148411750793457 >>> timeit.timeit('8/8', '') 0.07842803001403809 >>> timeit.timeit('8>>3', '') 0.03959393501281738
シフト演算と掛け算はPythonだとほとんど変わらないみたい。整数の割り算が遅いのは?ちょっと良くわからない結果になった。
追記
整数除算が遅いのは妥当な結果のようだ。勘違いしていました。
参考