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。