擅长:python、mysql、java
<p>除了cheeken的答案外,您还可以将以下内容放在模块的顶部:</p>
<pre><code>from __future__ import division
</code></pre>
<p>这样做将使除法运算符按您希望的方式工作,即始终执行(接近)真正的数学除法。除法运算符的默认行为(如果参数恰好绑定到整数,则执行截断整数除法)是从C继承的,但最终发现它不太适合Python这样的动态类型语言。在Python 3中,这种情况不再发生。</p>
<p>在Python 2模块中,我几乎总是从<code>__future__</code>中导入除法,这样就不会被意外地将整数传递给不希望截断的除法操作所捕获。</p>
<p>值得注意的是,<code>from __future__ import ...</code>语句必须是模块中的第一件事(我认为在它之前可以有注释和docstring,其他什么都没有)。它实际上不是一个普通的import语句,尽管它看起来像一个;它实际上改变了Python解释器读取代码的方式,因此它不能像普通的import语句一样等待runtime的执行。还要记住<code>import __future__</code>没有<code>from __future__ import ...</code>的魔力。</p>