易错之for循环

for i in range(3):
    print(i)
print(i,"---")      #Python的问题就在于,当循环结束以后,循环体中的临时变量i不会销毁,而是继续存在于执行环境中。
flist = []
for i in range(3):
    def foo(x):
        print(x + i)
    flist.append(foo)

for f in flist:
    f(1)    #原因在于foo()=x+i  x=1,此时函数在局部变量中找i,没有,在全局变量中找,for循环将i变成了2,所以x+2=3

 JavaScript中

    <script>
        for(var i=0;i<3;i++){
            console.log(i)
        }
        console.log(i,"---")  #3
        console.log(i,"---")  #3
    </script>

 

posted @ 2019-03-10 18:18  小名的同学  阅读(170)  评论(0)    收藏  举报