Python i+=1不等于++i

Python i+=1不等于++i,对于对Python语言的每个细节了解得不是那么清楚,而恰好又有其他语言背景的开发人员,很有可能写出如下类似的代码:

i = 0
mylist = [1,2,3,4,5,6]
while i < len(mylist):
     print mylist[i]
     ++i

运行这段代码会有什么问题?也许你会说:抛出语法错误。能说出这个答案的至少知道Python中是不支持++i操作的。但输出果真如此吗?非也,这段程序不会抛出任何语法错误,却会无限循环地输出1。原因是什么呢?因为Python解释器会将++i操作解释为+(+i),其中+表示正数符号。对于–1操作也是类似。

>>> +1
1
>>> ++1
1
>>> ++++1
1
>>> -2
-2
>>> --2 #负负得正
2
>>> -----2
-2
>>>

因此你需要明白++i在Python中语法上是合法的,但并不是我们理解的通常意义上的自增操作。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!