python中嵌套循环的作用域规则

时间:2018-05-29 17:52:17

标签: python

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

1 个答案:

答案 0 :(得分:3)

与任何函数本地赋值一样,循环索引在整个函数的范围内,for循环出现。for循环本身不会创建新的范围。