引子
python初学者对于下面这个例子有可能第一反应是会报SyntaxError
异常:
i = 0
myList = [1, 2, 3]
while i < len(myList):
print(myList[i])
++i
答案是错的,不会报异常,但是会死循环一直打印1,也即myList[0]
分析
在学习python语法时有学到python语言是不支持自增或者自减的。如果在python语言中使用自增或者自减符号时会报语法错误。
上面这个例子没有报错,那应该就是python语言将++i
当成了正常的表达式,而不是自增表达式。
是的,python语言会将++i
转换成+(+i)
。+
即可以表示加法符号,也可以表示一个正数符号,这里就会将两个+
转换成两将正数符号,最终结果是++i
还是i
自己。这也说明了为什么上面这个例子是一个死循环并且一直输出myList[0]了
可以尝试下,将++i
换成i++
就会报语法错误了。
网友评论