預計Python中的嵌套變量是否重疊? 例如:Python中的嵌套變量
for i in range(1,10):
x = [0xFF for i in range(6)]
print(i)
預期結果(序列)是什麼?使用Python 2.7我得到九個五分。
預計Python中的嵌套變量是否重疊? 例如:Python中的嵌套變量
for i in range(1,10):
x = [0xFF for i in range(6)]
print(i)
預期結果(序列)是什麼?使用Python 2.7我得到九個五分。
你所看到的應用列表解析的副作用。 列表理解中的迭代器變量是與for循環之一相同的。這意味着列表理解的迭代器變量是而不是本地表達式本身。
實施例:
>>> [x for x in range(10)]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print x
9
所以既迭代變量名應該是不同的。
i
將指向範圍內的最後一個元素(6),即5
,當列表解析完成的i
值是5,這就是你在打印時
您的外部環路範圍內運行(1,10),即9倍
In [47]: len(range(1,10))
Out[47]: 9
Python沒有塊範圍。因此,您在塊內更改的變量將在該塊之外可見。只有類,函數和模塊創建範圍。
當你聲明任何變量時,它將存儲該值。在python中,當你初始化任何變量並存儲一些值時,它將一直可用,直到變量不會被銷燬。所以當你在循環內寫入x = 10
時,你也會得到x
。如果你想刪除那個變量,然後輸入del x
那麼你將不會得到x
的值