【发布时间】:2021-05-17 03:15:08
【问题描述】:
我是 Python 新手,仍在学习中。我在使用运算符时了解了左侧绑定的概念(并且有人教导说只有求幂使用右侧绑定)。它还告诉我,* 和 / 具有相同的优先级,并且运算符的绑定决定了某些具有相同优先级的运算符执行的计算顺序,并排在一个表达式中。
但是现在在教授复合赋值运算符时,他们使用了下面的例子
a = 6
b = 3
a /= 2 * b
print(a)
给出的答案是1.0。
他们给出的解释如下。
2 * b = 6
a = 6 → 6 / 6 = 1.0
我的问题是,a/=2*b 与a=a/2*b 不是一回事吗?因此,在考虑a=a/2*b 时,不应该首先考虑除法,因为左侧绑定,然后再考虑乘法。
a = 6 → 6/2 = 3.0
3.0 * b = 9.0。
所以9.0 不应该是答案。请给我解释一下。
【问题讨论】:
标签: python operator-precedence