Python 3.x Python累加器错误

Python 3.x Python累加器错误,python-3.x,Python 3.x,我在一个函数中编写了两个嵌套的循环语句,这样我就可以使用turtles通过最低级别循环的一次迭代绘制一个一个大小的正方形,然后使用以下代码在外部循环上增加我的正方形大小: accumDistance = 0 def drawSquares(): for i in [1, 2, 3, 4, 5]: accumDistance = accumDistance + 20 for l in [1, 2, 3, 4]: greg.forwar

我在一个函数中编写了两个嵌套的循环语句,这样我就可以使用turtles通过最低级别循环的一次迭代绘制一个一个大小的正方形,然后使用以下代码在外部循环上增加我的正方形大小:

accumDistance = 0
def drawSquares():
    for i in [1, 2, 3, 4, 5]:
        accumDistance = accumDistance + 20
        for l in [1, 2, 3, 4]:
            greg.forward(accumDistance)
            greg.right(90)
问题是,每当我尝试运行应用程序时,都会收到一个错误。该错误表示,我试图在定义accumDistance变量之前使用它:“UnboundLocalError:赋值前引用的局部变量‘accumDistance’”。我已经将问题隔离到第一个for循环中,在这里我尝试增加。如果我删除“accumDistance=accumDistance+20”并设置accumDistance=20,程序将按预期工作


有人知道为什么这句话有问题吗?谢谢。

如果要修改函数中的全局变量,请使用
global

  accumDistance = 0
  def drawSquares():
>     global accumDistance
      for i in [1, 2, 3, 4, 5]:
          accumDistance = accumDistance + 20
          for l in [1, 2, 3, 4]:
              greg.forward(accumDistance)
              greg.right(90)

请参见

当您可以直接使用
范围(1,6)
时,为什么要使用
[1,2,3,4,5]
?我们正在使用的书还没有教我这一点,但我现在肯定会使用它,谢谢!