如何在 Python 2.7中除以两个数并得到小数的结果?
我不明白为什么会有区别:
Python 3:
>>> 20/15 1.3333333333333333
Python 2:
>>> 20/15 1
这不是模数吗?
In Python 3, / is float division
/
In Python 2, / is integer division (assuming int inputs)
int
In both 2 and 3, // is integer division
//
(To get float division in Python 2 requires either of the operands be a float, either as 20. or float(20))
20.
float(20)
In Python 2.x, make sure to have at least one operand of your division in float. Multiple ways you may achieve this as the following examples:
float
20. / 15 20 / float(15)
In Python 2.7, the / operator is integer division if inputs are integers.
If you want float division (which is something I always prefer), just use this special import:
from __future__ import division
See it here:
>>> 7 / 2 3 >>> from __future__ import division >>> 7 / 2 3.5 >>>
Integer division is achieved by using //, and modulo by using %:
%
>>> 7 % 2 1 >>> 7 // 2 3 >>>
As commented by user2357112, this import has to be done before any other normal import.
user2357112
"/" is integer division in Python 2, so it is going to round to a whole number. If you would like a decimal returned, just change the type of one of the inputs to float:
float(20)/15 #1.33333333