Python错误地评估数学表达式

时间:2014-02-11 14:07:25

标签: python-2.7 spyder anaconda

我有一个包含以下声明的脚本:

Me = 5.97219E+24
Ms = 1.9891E+30
ae = 149597887155
r = ae*((Me/Ms)**(2/5))

运行脚本后,变量r具有与ae相同的值149597887155。这显然不是评估表达式后我所期望的值。

我尝试重新启动计算机,启动新的Python解释器,甚至安装另一个Python发行版。在每种情况下都是相同的结果。

目前,我正在使用Anaconda和Python 2.7以及Spyder作为编辑。

奇怪的是,当我直接将语句复制并粘贴到解释器中时,它们会被正确评估。

听起来对任何人来说都很熟悉吗?这有什么原因吗?

1 个答案:

答案 0 :(得分:1)

在Python 2.7中,2/5是一个整数除法,得到0.任何由0驱动的都是1,这意味着r的最终结果是ae * 1.

在Python 3.3中,2/5结果为0.4,可能会给出您期望的结果。

仅关于控制台的区别:我没有差异。