我认为python中的循环不会改变我们的全局变量;但是,下面的代码给出10。有人可以解释这里发生了什么吗?
source_col_numbers = 9
i = 1
columns = {}
while i <= source_col_numbers:
columns[i] = list(filter(None , source.sheet1.col_values(i)))
i += 1
print(i)
答案 0 :(得分:1)
您已将i
声明为全局变量,然后在循环中使用它。
因此,您在程序中对i
所做的任何更改都将应用于该i
,因为它是全局变量。
全局变量表示i
具有全局范围。如果您在函数内部创建了i
,则它将具有本地作用域,并且无法在函数外部访问。
因此,在您的情况下,将进行更改,输出将为10
。
答案 1 :(得分:0)
循环确实会更改全局变量,因此对于循环的每次迭代,i
将增加1。