def temp():
temparray = ['a','b']
temparray_2 = ['c','d','e']
for i in temparray:
print('i:' + str(i))
for i in temparray_2:
print('first: ' + str(i))
print('Second: ' + str(i))
print('final: ' + str(i))
为什么上面的代码输出如下?变量i似乎被内部循环中最后分配的任何内容覆盖。 python是否不遵守Java或C等范围规则?
i:a
first: c
first: d
first: e
Second: e
i:b
first: c
first: d
first: e
Second: e
final: e
答案 0 :(得分:3)
与任何函数本地赋值一样,循环索引在整个函数的范围内,for
循环出现。for
循环本身不会创建新的范围。