This post is also available in: English-US (英語)
pythonで整数値の割り算が0になり、以下のようなエラーを吐く場合があります。
その対処方法をメモとして書いています。
# xxx はなんらかの変数 ValueError: xxx must be > 0
Pythonは、デフォルトでは分母よりも分子の方が大きいと 0 を出力するみたいで、float型で扱うことを指定するか、もしくは以下のように 1.0 を乗算すると、小数点付きの計算結果が得られるようです。
# アウトプットはint型で問題ない >>> 10/10 1 # アウトプットはint型だと問題あり >>> 10/100 0 # float型で扱うことを指定してアウトプットをfloat型にするパターン >>> float(10)/100 0.1 # 1.0を乗算して、アウトプットをfloat型にするパターン >>> 10*1.0/100 0.1 # ちなみに、以下は計算結果0のアウトプットをfloat型に変換しているので0.0となる >>> float(10/100) 0.0