<p>我对python中变量的作用域感到困惑。下面是一个我尝试做的玩具例子:</p>
<pre><code>a = True
enumerated_set = enumerate(['tic','tac','toe'])
for i,j in enumerated_set:
if a == True:
print j
</code></pre>
<p>我得到的结果是:</p>
<pre><code>tic
tac
toe
</code></pre>
<p>现在</p>
<p><code>print a</code></p>
<p>退货</p>
<pre><code>`True`
</code></pre>
<p>如果我再跑一次</p>
<pre><code>for i,j in enumerated_set:
if a == True:
print j
</code></pre>
<p>我没有输出。你知道吗</p>
<p>我很困惑。。。既然全局<code>a = True</code>,为什么在第二个循环中没有执行打印。你知道吗</p>
<p>我感谢你的帮助。你知道吗</p>
<p>编辑:另一个让我困惑的例子</p>
<pre><code>y = 'I like this weather'.split()
for item in y:
for i,j in enumerated_set:
if a == True:
print j
</code></pre>
<p>也不产生输出。。。。你知道吗</p>