在python中循环结束后记住循环变量

在python中循环结束后记住循环变量,python,python-3.x,Python,Python 3.x,上面的函数在调用时打印3,这是什么情况?循环结束/中断“ed”后是否仍记得循环变量?请参阅 以前关于将循环变量设置为本地变量的建议 循环偶然发现了现有代码的问题 这依赖于循环变量保持其值 退出循环后,这似乎是 被认为是可取的特征 如果序列为空,则循环根本不会为变量赋值: def john(): for i in range(5): if i == 3: break print(i) john() []中x的>>: 通过 >>>打印(x)

上面的函数在调用时打印3,这是什么情况?循环结束/中断“ed”后是否仍记得循环变量?

请参阅

以前关于将循环变量设置为本地变量的建议 循环偶然发现了现有代码的问题 这依赖于循环变量保持其值 退出循环后,这似乎是 被认为是可取的特征

如果序列为空,则循环根本不会为变量赋值:

def john():
    for i in range(5):
        if i == 3:
            break
    print(i)

john()
[]中x的
>>:
通过
>>>打印(x)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
打印(x)
名称错误:未定义名称“x”

是,循环变量保存最后一个值
>>> for x in []:
        pass

>>> print(x)
Traceback (most recent call last):
  File "<pyshell#66>", line 1, in <module>
    print(x)
NameError: name 'x' is not defined