Python 3 では、int / int の結果は常に float となります
>>> 10 / 3 # 結果はfloat 3.3333333333333335 >>> type(10 / 3) <class 'float'> >>> type(9 / 3) # たとえ割り切れてもfloat <class 'float'>
小数点以下を切り捨てた int の結果が欲しい場合には、// 演算子を使います。
>>> 10 // 3 # 結果はint 3 >>> type(10 // 3) <class 'int'>
C言語をはじめとする「多くの言語」では、int / int の結果は int ですので、少々戸惑うところです。
そして何より、「多くの言語」の中には Python 2 も含まれています! Python 2 での / 演算子の演算結果を示します。
# Python 2 >>> 10 / 3 3 >>> type(10 / 3) <type 'int'>
あくまで私見ですが、/ という基本演算子の挙動を前バージョンから変え、わざわざ変えた結果がプログラム界では少数派の挙動、というのは Python 3 の失敗だと思います。
0 件のコメント:
コメントを投稿