首页 > 解决方案 > Python 2.7 的操作顺序

问题描述

自学编码,这行代码的操作顺序是什么?

print 3 + 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6

我尝试先做余数和除法,所以我得到了 3 + 2 + 1 - 5 + 0 - 0.25 / 4 + 6。然后我从左到右完成了 AS,得到了 0.075。完全错误,因为 LPTHW 把它放在了 7。请提供详细的操作顺序。

我用谷歌搜索了 Python 的操作顺序,但结果并不太详细。

print 3 + 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6

预期结果为 7,但得到 0.075

标签: python

解决方案


这取决于您使用的 Python 版本。

在 Python 2 中,/运算符默认为整数除法,因此1 / 4 == 0.

另一方面,在 Python 3 中,/运算符默认为除法,因此1 / 4 == 0.25. 在 Python 3 中必须使用它//来实现整数除法。

无论如何,Python 仍然遵循经典的 PEMDAS 运算顺序,因此模数和除法仍然首先发生,然后是从左到右的加法和减法。

以下是在两个版本中进行模数和除法后问题如何减少:

蟒蛇2

(3 + 2 + 1 - 5 + 0 - 0 + 6) == 7

蟒蛇 3

(3 + 2 + 1 - 5 + 0 - 0.25 + 6) == 6.75


推荐阅读