while循环修改全局变量
While loop modify global variable
我认为 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)
您已将 i
声明为全局变量,然后在循环中使用它。
因此,您在程序中对 i
所做的任何更改都将应用于 i
,因为它是一个全局变量。
全局变量意味着 i
具有全局范围。如果您在函数内部创建 i
,它将具有局部作用域并且无法在函数外部访问。
因此在您的情况下,将进行更改并且输出将是 10
。
循环确实会更改全局变量,因此对于循环的每次迭代,i
将递增 1。
我认为 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)
您已将 i
声明为全局变量,然后在循环中使用它。
因此,您在程序中对 i
所做的任何更改都将应用于 i
,因为它是一个全局变量。
全局变量意味着 i
具有全局范围。如果您在函数内部创建 i
,它将具有局部作用域并且无法在函数外部访问。
因此在您的情况下,将进行更改并且输出将是 10
。
循环确实会更改全局变量,因此对于循环的每次迭代,i
将递增 1。