今天测试出一个很诡异的bug, 这个错误还真的很难发现
测试1
a = [1,10,100]
for i in a:print(i)if(i==10):a=[20,30,-1]
一般来说我们在进行迭代时,a这个值时不能改动的,但是现在的问题时如果我不小心给改动了呢,结果如下
也就是说,其实在一层循环里a的改动并步影响最终的取值,这个还好理解
但是下面的这个例子就很奇怪了
测试2
a = [1,10,100]
for k in range(4):for i in a:print(i)if(i==10):a=[20,30,-1]
可以看到这个结果就比较有有意思了,我在外面再套了一层循环,结果发现第一个循环的值没有发生改变,但是后面几次的发现循环变量被改了,这个需要记住哈,具体什么原因我目前也搞不清楚,最好的办法就是不要用同名的变量