求教一个关于for循环的问题
本帖最后由 康小泡 于 2018-12-24 10:08 编辑x=4
for j in range(x):
for i in range(x):
print(i)
x=2
上图的代码,运行结果为什么是:
0
1
2
3
0
1
0
1
0
1 我是这么理解的:
for循环会自动生成迭代器,在这里就相当于计数循环
for j in range(x):# 此时x = 4, 相当于生成一个4次的计数器,循环体内的代码执行四次
for i in range(x):#第一次运行,x = 4,生成range(4)的迭代对象,所以先打印出0,1,2,3;第二次运行,x = 2(实际上已被赋值4次),所以生成range(2)的 迭代对象,打印出0,1 ;第三次和第四次都同第二次
print(x)
x = 2
关键是在循环体内给x赋值不会影响到已经生成的迭代对象。 for j in range(x) 这个x值为4比较好理解,循环四次.
for i in range(x),本来x为4,第一次循环完毕后x改为2.后面循环的范围都是(0,2)。
并且这个内部的x和外部的x虽然都是x,但是并不是一个。
可以看做是名字一样的不同变量(作用域不同)。
可以简单理解为全局变量和局部变量。
页:
[1]