我在函数内部编写了两个嵌套循环语句,这样我就可以使用海龟通过最低级循环的一次迭代绘制一个大小的正方形,然后在外循环上增加我的方形大小以下代码:
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,该程序按预期工作。
有人知道为什么这个陈述有问题吗?感谢。
答案 0 :(得分:1)
如果要修改函数中的全局变量,请使用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)
请参阅Using global variables in a function other than the one that created them