【发布时间】:2021-06-27 18:19:13
【问题描述】:
我刚刚在 Python 中玩算术运算符,就遇到了 Python 算术这个奇怪的东西。
>>> (11 / 1) % (2 / 11)
0.0909090909090906
>>> 11 / 1 % 2 / 11
0.09090909090909091
为什么这两个答案有区别?数学是一样的,为什么结果不一样?
【问题讨论】:
-
这就像问为什么
(1 + 2) * 3给出的结果不是1 + 2 * 3 -
@DeepSpace 我猜这个没那么简单。如果您可以将相同的规则应用于上述问题,我将不胜感激.....
-
就这么简单。括号改变运算顺序
-
@coderboy 由于
%和除法/具有相同的优先级,因此从左到右计算。而在 DeepSpaces 示例中,*的优先级高于+。 -
请从intro tour 重复on topic 和how to ask。 Stack Overflow 并不打算取代现有的文档和教程。我们希望您查找运算符优先级;这不是堆栈溢出问题。
标签: python python-3.x arithmetic-expressions