【发布时间】:2011-10-10 17:23:09
【问题描述】:
【问题讨论】:
【问题讨论】:
整数除法与浮点除法:
>>> 5.0/3
3: 1.6666666666666667
>>> 5.0//3
4: 1.0
或者正如他们在Python docs 中所说的那样,// 是“x 和 y 的(地板)商”。上面的例子是在 Python 2.7.2 中运行的,它只对浮点数表现这种方式。如果你在 2.7.2 中使用整数,你会得到:
>>> 5/3
9: 1
>>> 5//3
10: 1
在 Python 3.x 中你会得到不同的结果,所以如果你真的想要落地版,养成使用 // 的习惯,因为有一天它会很重要:
Python 3.2.2 (default, Sep 4 2011, 09:51:08) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> 5/3
1.6666666666666667
>>> 5//3
1
>>> 5.0/3
1.6666666666666667
>>> 5.0//3
1.0
【讨论】:
from __future__ import division,a/b 的行为将类似于 Python 3。这就是为什么 `a//b` ` 甚至在 2.x 下也存在,以便允许这种仅成为 3.0 的默认行为的未来行为