Pythonではまったこと


このエントリーをはてなブックマークに追加

インクリメント

ある整数を格納した変数をインクリメントしようと、CやPerlを書く時と同じような気持ちで以下のコードを書いた。

num = 10
++num
print num

エラーも警告もなく実行されるが、表示される値は意図に反して

10

であった。

Pythonではインクリメント演算子が存在しないため、正しくは以下のように書かねばならなかった。

num = 10
num += 1
print num

エラーも警告も出ないので、他言語から来た人にとっては非常に厄介なバグの原因になりそう。ちなみにRubyでもまったく同じことが起こる。

割り算

C/C++では除算の演算子'/'は余りを切り捨てる。この'/'に相当するPython演算子は'//'である。Pythonで'/'を使うと、結果は小数となってしまう。

四捨五入関数のround()

round()関数は四捨五入を行う関数だが、浮動小数点の罠に要注意。詳しくはこちら