变量为0时的乘法赋值运算符

为什么以下操作的结果在Python REPL中始终为0? (对于C和Javascript获得了相同的结果)

>>> a = 0
>>> a *= 1 + 1
>>> a
0

在上述情况下,乘法分配不等于a = a * 1 1吗?

>>> a = 0
>>> a = a * 1 + 1
>>> a
1
最佳答案
因为

a *= 1 + 1

是相同的

a = a *(1 + 1)

因为a是0,那么结果仍然是0

转载注明原文:变量为0时的乘法赋值运算符 - 代码日志