Python 在for循环外使用for循环变量

Python 在for循环外使用for循环变量,python,python-3.x,for-loop,Python,Python 3.x,For Loop,我不明白这怎么可能?这里我将I的值用于for循环,在for循环之外 枚举(桶)中i,kv的: k、 v=kv 如果key==k: key_exists=True 打破 #问题是。。。 如果存在密钥_: bucket[i]=((键、值)) 印刷品(一) 其他: bucket.append((键,值)) 这是可能的,因为Python没有块作用域。在for循环(i在您的代码中)中分配给的变量本身的范围并不局限于for循环;它存在于外部范围中,因此在循环之后仍然可用 例如: 范围(10)内的i的: 通过

我不明白这怎么可能?这里我将
I
的值用于
for
循环,在
for
循环之外

枚举(桶)中i,kv的
:
k、 v=kv
如果key==k:
key_exists=True
打破
#问题是。。。
如果存在密钥_:
bucket[i]=((键、值))
印刷品(一)
其他:
bucket.append((键,值))

这是可能的,因为Python没有块作用域。在
for
循环(
i
在您的代码中)中分配给的变量本身的范围并不局限于
for
循环;它存在于外部范围中,因此在循环之后仍然可用

例如:

范围(10)内的i的
:
通过
印刷品(一)#印刷品9
循环内的任何其他赋值也是如此。这里,变量
j
在循环之后可见,原因相同:for循环块的
不是一个单独的、更窄的范围

范围(10)内的i的
:
j=17
印刷品(j)#印刷品17
VTR,因为OP询问Python为什么没有块作用域。相反,可以是和/或的副本