Python 代码文件中的数学与控制台中的不同

Math in Python Code File not the Same in Console

我想知道这里发生了什么。我正在 运行 阅读 Learn Python the Hard Way 本书,它到了要我输入复杂数学的地步:就像你在小学时可能遇到的那些快速数学问题。问题是当我 运行 来自控制台的文件中的问题时,它产生的答案与直接将问题输入控制台时得到的答案不同。

我的例子是这样的:

第一行是来自文件的结果的问题是以下行。然后我在控制台中复制 完全相同的 问题以获得以下结果。

该网站暗示人们会假设看到数字向下舍入,而作者说它是 t运行cating 数字,或 "dropping the fractional part after the decimal"。我没有看到这些事情发生。

谁能告诉我这是怎么回事?我目前安装了 Python 2.7。

1/4中的两个操作数都是整数。 Python 不会 auto-convert 该操作的结果浮动。 PowerShell 可以。因此 Python 减去 0,而 PowerShell 减去 0.25.

将 Python 语句更改为:

3 + 2 + 1 - 5 + 4 % 2 - 1.0 / 4 + 6                           # returns 6.75

您将获得与在 PowerShell 中相同的结果。

要让 PowerShell 给出与 Python 相同的结果,您需要 emulate an integer division:

3 + 2 + 1 - 5 + 4 % 2 - [Math]::Floor([int]1 / [int]4) + 6    # returns 7

在第一个示例中,您在 Python 中执行算术运算。第二,您正在使用 Windows 控制台。他们使用不同的规则来评估这些表达式——特别是 1/4 部分(Python 不使用浮点数,除非你告诉它,所以结果是 0)。

当我比较 Python 脚本与 Python 控制台时,我得到相同的答案:

# Python script.
$ python -c 'print 3 + 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6'
7

# The Python console.
$ python
Python 2.7.11 (default, Jul 30 2016, 18:49:54)
>>> print 3 + 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6
7