我坚持此练习,因为如果我使用快捷键运算符编写结果为1,则结果为9
a = 6
b = 3
a /= 2 * b
print(a)
a = a / 2 * b [结果9] a / = 2 * b [结果1]
但是,如果我使用*并在/之后进行此练习,则像这样:
a *= 2 / b
为什么在这种情况下他们不先做(2 / b)?
答案 0 :(得分:1)
>> [position,orient ] = pose(FUSE);
是a = a / 2 * b
(遵循“普通”数学PEMDAS规则)。
另一方面
a = 6 / 2 * 3
是a /= 2 * b
(由于必须首先评估右侧,因此实际上变成a = 6 / (2 * 3)
-> a /= 6
)
为什么必须首先评估右侧?因为语句a = a / 6
没有意义。
关于您的编辑:比较(a = 6 / 2) * 3
和a *= 2 / b
时会发生完全相同的行为。区别在于,在此示例中,a = a * 2 / b
在两种情况下均为4,因为a
和
(6 * 2) / 3
的求和结果均为4。