如何为我分配的未分配变量修复 UnboundLocalError?

哼哼蜜蜂57

我正在尝试使用 Turtle 库和递归在 Python 中创建一个 Koch 雪花生成器。我有一个包含十六进制代码的字符串列表,我正在使用该变量color让笔按列表的顺序更改颜色。如您所见,我color在函数定义之外进行了定义,但是当我尝试运行它时,我得到 UnboundLocalError 说它color在分配之前已被引用。如何修复错误,以便我的代码按预期运行?

这是我为生成雪花而编写的一些代码。color应该在每次绘制一条线时增加一,所以下次绘制一条线时,使用的颜色是palette[color % 6]

import turtle

turtle.colormode(255)
palette = ["#ff0f7b","#fd445d","#fc5552","#fa8139","#f98a34","#f89b29"]
color = 0

# Draw a Koch curve
def koch(iteration, length):
    if iteration == 1:
        turtle.forward(length/3)
        turtle.pencolor(palette[color % 6])
        color += 1
    else:
        koch(iteration-1, length/3)
    turtle.left(60)

这是我收到的错误消息:

Traceback (most recent call last):
  File "C:\Users\hummi\Python Files\koch_snowflake.py", line 49, in <module>
    koch_snowflake(4, 480)
  File "C:\Users\hummi\Python Files\koch_snowflake.py", line 41, in koch_snowflake
    koch(iteration, length)
  File "C:\Users\hummi\Python Files\koch_snowflake.py", line 15, in koch
    koch(iteration-1, length/3)
  File "C:\Users\hummi\Python Files\koch_snowflake.py", line 15, in koch
    koch(iteration-1, length/3)
  File "C:\Users\hummi\Python Files\koch_snowflake.py", line 15, in koch
    koch(iteration-1, length/3)
  File "C:\Users\hummi\Python Files\koch_snowflake.py", line 12, in koch
    turtle.pencolor(palette[color % 6])
UnboundLocalError: local variable 'color' referenced before assignment
加密傻瓜

您只需要添加一个global color语句,如下所示:

color = 0

# Draw a Koch curve
def koch(iteration, length):
    global color
    if iteration == 1:
        turtle.forward(length/3)
        turtle.pencolor(palette[color % 6])
        color += 1

如果没有添加,修改 的值color会使其成为局部范围的变量。由于在该本地范围内,尚未分配它,并且增量语句需要变量的先前值,因此您会看到您看到的错误。添加global color语句会强制语句引用全局color值,即使它正在修改值。如果您只是从 中读取,则不需要color该语句。global color这里有一个有点奇怪的 Python 事实。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何修复写入文件中的“UnboundLocalError:分配前引用的局部变量‘open’”?

来自分类Dev

如何修复“UnboundLocalError:分配前引用的局部变量‘user_score’”?

来自分类Dev

分配前引用的变量“html”:UnboundLocalError

来自分类Dev

我该如何解决:UnboundLocalError:分配前引用的局部变量“生成”

来自分类Dev

UnboundLocalError:分配前已引用局部变量“ opTuple”

来自分类Dev

UnboundLocalError:分配前引用了本地变量“ cur”

来自分类Dev

UnboundLocalError:分配前已引用局部变量“ req”

来自分类Dev

UnboundLocalError:分配前引用了局部变量“pin”

来自分类Python

在if语句后出现“ UnboundLocalError:分配前引用的局部变量”

来自分类Python

Python 3:UnboundLocalError:分配前引用的局部变量

来自分类Dev

UnboundLocalError:分配前已引用局部变量“ cursor”

来自分类Dev

UnboundLocalError:分配前已引用局部变量“键”

来自分类Dev

UnboundLocalError:分配前已引用局部变量“ slcount”

来自分类Dev

While循环:UnboundLocalError:分配前引用的局部变量

来自分类Dev

Django:UnboundLocalError:分配前已引用局部变量“ company”

来自分类Dev

UnboundLocalError:分配前已引用局部变量“ ticketCost”

来自分类Dev

UnboundLocalError:分配前已引用局部变量“ settingsText”

来自分类Dev

UnboundLocalError:分配前已引用局部变量“ response”

来自分类Dev

递归求和函数(“ UnboundLocalError:分配之前引用的局部变量”)

来自分类Dev

UnboundLocalError:分配前已引用局部变量“事件”(PYGAME)

来自分类Dev

'UnboundLocalError:分配前引用了本地变量'command'

来自分类Dev

UnboundLocalError:分配前已引用局部变量“ mp”

来自分类Dev

UnboundLocalError:分配前已引用局部变量“分数”

来自分类Dev

UnboundLocalError:分配前引用的局部变量“pop”

来自分类Dev

它说 UnboundLocalError,在此代码中分配变量后如何更新变量?

来自分类Dev

无法在我的Django视图中修复unboundlocalError

来自分类Dev

如何修复django-oscar运送UnboundLocalError?

来自分类Dev

如何在/ accounts / register修复UnboundLocalError

来自分类Dev

如何修复“UnboundLocalError:赋值前引用的局部变量‘books’”?

Related 相关文章

  1. 1

    如何修复写入文件中的“UnboundLocalError:分配前引用的局部变量‘open’”?

  2. 2

    如何修复“UnboundLocalError:分配前引用的局部变量‘user_score’”?

  3. 3

    分配前引用的变量“html”:UnboundLocalError

  4. 4

    我该如何解决:UnboundLocalError:分配前引用的局部变量“生成”

  5. 5

    UnboundLocalError:分配前已引用局部变量“ opTuple”

  6. 6

    UnboundLocalError:分配前引用了本地变量“ cur”

  7. 7

    UnboundLocalError:分配前已引用局部变量“ req”

  8. 8

    UnboundLocalError:分配前引用了局部变量“pin”

  9. 9

    在if语句后出现“ UnboundLocalError:分配前引用的局部变量”

  10. 10

    Python 3:UnboundLocalError:分配前引用的局部变量

  11. 11

    UnboundLocalError:分配前已引用局部变量“ cursor”

  12. 12

    UnboundLocalError:分配前已引用局部变量“键”

  13. 13

    UnboundLocalError:分配前已引用局部变量“ slcount”

  14. 14

    While循环:UnboundLocalError:分配前引用的局部变量

  15. 15

    Django:UnboundLocalError:分配前已引用局部变量“ company”

  16. 16

    UnboundLocalError:分配前已引用局部变量“ ticketCost”

  17. 17

    UnboundLocalError:分配前已引用局部变量“ settingsText”

  18. 18

    UnboundLocalError:分配前已引用局部变量“ response”

  19. 19

    递归求和函数(“ UnboundLocalError:分配之前引用的局部变量”)

  20. 20

    UnboundLocalError:分配前已引用局部变量“事件”(PYGAME)

  21. 21

    'UnboundLocalError:分配前引用了本地变量'command'

  22. 22

    UnboundLocalError:分配前已引用局部变量“ mp”

  23. 23

    UnboundLocalError:分配前已引用局部变量“分数”

  24. 24

    UnboundLocalError:分配前引用的局部变量“pop”

  25. 25

    它说 UnboundLocalError,在此代码中分配变量后如何更新变量?

  26. 26

    无法在我的Django视图中修复unboundlocalError

  27. 27

    如何修复django-oscar运送UnboundLocalError?

  28. 28

    如何在/ accounts / register修复UnboundLocalError

  29. 29

    如何修复“UnboundLocalError:赋值前引用的局部变量‘books’”?

热门标签

归档