相信很多学过C语言的人都被其自增运算符++和自减运算符--搞得头疼不已。关于这些运算符的试题在面试中屡见不鲜。其实在语法上出现自增自减运算符可能是不够优雅的,如下面的代码在GCC中会导致出错:
int i = 1;
++ +i;
而下面的代码却可以编译通过:
int i = 1;
+ ++i;
作为一门注重效率的语言,C语言中出现自增自减操作可能是为了生成高效的机器码,因为这些操作可以直接映射成CPU的指令。然而Python的设计者却没有为其添加自增和自减操作。于是乎,在Python中,下面的代码就是合法的:
i = 1
- --i
-- -i
- - -i
上面的代码除了赋值语句以外所有的语句都是等价的,值都是-1。显然在Python中,因为++和--导致的歧义少了许多。让我们来看更多的例子吧
2---1 # = 1
2+-+1 # = 1
2+++---1 # = 1
你搞清楚了吗!