Python 中递增和递减运算符的行为
如何使用预递增/递减运算符 (, ),就像在C++中一样?++
--
为什么运行但不更改变量的值?++count
如何使用预递增/递减运算符 (, ),就像在C++中一样?++
--
为什么运行但不更改变量的值?++count
++
不是操作员。它是两个运算符。运算符是标识运算符,它不执行任何操作。(澄清:和一元运算符只适用于数字,但我认为您不会期望假设运算符处理字符串。+
+
+
-
++
++count
解析为
+(+count)
这意味着
count
您必须使用稍长的运算符来执行所需的操作:+=
count += 1
我怀疑和运算符被遗漏了,以保持一致性和简单性。我不知道Guido van Rossum为这个决定给出了确切的论据,但我可以想象一些论据:++
--
++count
+
+
count
+
++
count
++
++
+= 1
a += 1
inc
++
Python没有前增量和后增量运算符。
在Python中,整数是不可变的。那就是你不能改变它们。这是因为整数对象可以在多个名称下使用。试试这个:
>>> b = 5
>>> a = 5
>>> id(a)
162334512
>>> id(b)
162334512
>>> a is b
True
上面的 a 和 b 实际上是同一个对象。如果递增 a,则也会递增 b。这不是你想要的。因此,您必须重新分配。喜欢这个:
b = b + 1
许多使用python的C程序员想要一个增量运算符,但该运算符看起来像是递增了对象,而实际上它重新分配了它。因此,添加的 和 运算符,要比 短 ,同时比 更清晰、更灵活,所以大多数人会递增:-=
+=
b = b + 1
b++
b += 1
这将重新分配给 。这不是一个递增运算符,因为它不递增 ,它会重新分配它。b
b+1
b
简而言之:Python在这里的行为不同,因为它不是C,也不是围绕机器代码的低级包装器,而是一种高级动态语言,其中增量没有意义,也不像C中那样必要,例如,每次有循环时都使用它们。