for语句中的变量问题
本帖最后由 Blizzard0319 于 2021-2-22 23:44 编辑for i in range(3):
if i==1:
k=1
break
if k==1:
print(1)
为什么运行之后显示k没有定义?是因为k是局部变量吗?可是我并没有定义函数 因为k在for循环内部定义
在for循环外无法访问到,所以报错未定义 昨非 发表于 2021-2-22 23:34
因为k在for循环内部定义
在for循环外无法访问到,所以报错未定义
我突然发现是我代码缩进的问题{:10_266:} 昨非 发表于 2021-2-22 23:34
因为k在for循环内部定义
在for循环外无法访问到,所以报错未定义
for循环内部定义的变量外面应该也可以访问吧? Blizzard0319 发表于 2021-2-22 23:37
我突然发现是我代码缩进的问题
好家伙 Blizzard0319 发表于 2021-2-22 23:39
for循环内部定义的变量外面应该也可以访问吧?
不可以,只在它的作用域内可以 昨非 发表于 2021-2-22 23:41
不可以,只在它的作用域内可以
for i in range(3):
if i==1:
k=1
break
if k==1:
print(1)
那为什么我这样取消一个缩进就行了呢? Blizzard0319 发表于 2021-2-22 23:44
那为什么我这样取消一个缩进就行了呢?
不对不对,我上面说的不对
这个k在for循环外是可以访问的
反倒是同一缩进不同if分支之间不能访问
奇怪了 我懂了,这个报错的原因是
第一次for循环里,i=0,if条件不满足,此时还没有执行到k=1
然后贸然执行到if k==1的判断,所以报错k未定义
页:
[1]