Skip to main content
 首页 » 编程设计

for循环中的Python变量范围

2025年05月04日17birdshome

<分区>

这是一个非常简单的问题,但我不知道为什么 python 会这样做。对于下面的循环,if head != None... 正在创建一个局部变量,这样 head += 1 不会修改 for 中的头部放在 myHeap.array 中。在 head += 1 之后添加一个 print(head) 会产生我想要的结果,但 if 语句之外的 head 保持不变。

    for head in myHeap.array: 
        if head != None and count % int(grow) == 0: 
            head += 1 

因此输入 myHeap.array = [2, 2, 2, 1] 在迭代结束时输出相同的列表,而预期的是 [3, 3, 3, 2]。我还验证了 if 语句满足条件并且解释器使用 head += 1 行