下面的代码将输出什么
for i in range(5):
continue
print(i)既然这个变量超出了作用域,那么为什么上面的代码可以工作呢?另外,为什么i的值限制为4?
发布于 2020-03-20 22:42:52
它遍历范围,0,1,2,3,4,什么也不做。"i“是迭代器,最后一个是"4",所以你要打印它。
发布于 2020-03-20 22:54:40
该变量没有超出作用域。python中的局部变量在定义它的函数中随处可用。如果它不在函数中,则该变量具有全局作用域。这样做可能是因为,在python中不需要像我们在C或Java中那样声明变量。请注意,在函数内部使用的任何变量在循环外部也可用。
例如:
for foo in range(10):
bar = 2
print(foo, bar)这将打印9 2。
至于你的第二个问题,python中的大多数东西都有包含的下界和排除的上限。这意味着,range(5)实际上就是[0, 1, 2, 3, 4]。
可以通过运行print(list(range(5)))来验证这一点。
如果需要范围1-5,可以使用range(1, 6)。
https://stackoverflow.com/questions/60776241
复制相似问题