【发布时间】:2022-01-23 20:47:05
【问题描述】:
我试图在 Python 中运行这个脚本,但我发现了一些非常奇怪的东西:
test = ['file.txt', 'file1.mkv', 'file2.mkv']
for test in test:
print(test)
print(test)
一旦我运行了这个脚本,我就会期待这样的输出:
file.txt
file1.mkv
file2.mkv
['file.txt', 'file1.mkv', 'file2.mkv']
我得到的是这样的:
file.txt
file1.mkv
file2.mkv
file2.mkv
我不明白为什么最后一行输出是“file2.mkv”。
在脚本中我说要打印test 中的每个值,然后打印test。我从来没有写过更改变量test,所以没有理由输出不是我一开始定义的初始变量test。
我知道我可能错了,但我想了解原因。
【问题讨论】:
-
在循环测试中是局部变量
test(列表中的每个元素test)。循环后,test是顶层变量test(列表) -
尝试使用
for t in test看看你是否能理解发生了什么。 -
或许你可以尝试跑到这里看看是怎么回事——pythontutor.com
标签: python list for-loop scope