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中语法上是合法的,但并不是我们理解的通常意义上的自增操作。
酷客网相关文章:
评论前必须登录!
注册