Python循环中的变量作用域的灵异现象

来源:互联网 发布:linux的ftp权限设置 编辑:程序博客网 时间:2024/06/01 11:46

写在前面的画

最近很想看《名侦探柯南》,但是没有时间看啊。时间实在是太少了,吃的不好睡的不好,只好写篇博客,取的名字就像名侦探柯南盗版破案名字山寨版。


案件描述

事情是这样的,今天写代码,写了三个循环,用的自增变量都是i 然后发现没有得出正确结果,我就奇了怪了。代码逻辑没有问题,可是就是 i的作用域有点奇怪。

我们看下面的代码:

这里写图片描述


 for i in range(4):     print "first i : " + str(i)     for i in range(4):         print "second " + str(i)         if i ==2:             break     print "which i " + str(i)

我们来看看运行的结果

这里写图片描述

我们发现在第二层循环结束的时候,在和第二层循环平行的结构里那个i竟然是二层循环里的i ,可是二层循环都结束,而且明明在第一层作用域里,可它就是第二层里的i。

真是见鬼了

所以,以后不管是不是嵌套循环,我们还是用不同的变量来表示循环的自增变量吧。

为了验证不是巧合
我们在来玩一次

这里写图片描述

这里写图片描述

好的,今天就写到这里吧







这里写图片描述


这里写图片描述






原创粉丝点击