2つの数値をPython 2.7で除算し、小数で結果を取得するにはどうすればよいですか?
なぜ違いがあるのかわかりません:
Python 3:
>>> 20/15
1.3333333333333333
Python 2:
>>> 20/15
1
これは実際にはモジュロではありませんか?
python 2.7では、入力が整数の場合、/
演算子は整数除算です。
フロート除算(これは私が常に好むものです)が必要な場合は、次の特別なインポートを使用してください。
from __future__ import division
こちらをご覧ください:
>>> 7 / 2
3
>>> from __future__ import division
>>> 7 / 2
3.5
>>>
整数除算は//
を使用して達成され、モジュロは%
を使用して達成されます
>>> 7 % 2
1
>>> 7 // 2
3
>>>
編集
user2357112
がコメントしているように、このインポートは他の通常のインポートの前に行う必要があります。
Python 3では、/
はfloat除算です
Python 2では、/
は整数除算です(int
入力を想定)
2 and 3の両方で、//
は整数除算です
(Python 2で浮動小数点除算を取得するには、20.
またはfloat(20)
のいずれかのオペランドが浮動小数点である必要があります)
Python 2.xでは、float
に部門のオペランドが少なくとも1つあることを確認してください。次の例のように、これを実現する複数の方法:
20. / 15
20 / float(15)
「/」はpython 2の整数除算であるため、整数に丸められます。小数を返したい場合は、入力の1つのタイプをfloatに変更するだけです。
float(20)/15 #1.33333333