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

时间:2019-10-27 16:42:27

标签: python

所以我试图随机选择一个列表。我的代码如下:

sequence = [1, 5, 7, 8]

    if counter == 0:

        selection = choice(sequence)


    if selection == 1:
        number1 = pygame.image.load('Number1.png')
        pygameWindow.Draw_Image(number1, 540, 50)
        Capture1 = pygame.image.load('Captura1.png')
        pygameWindow.Draw_Image(Capture1, 550, 370)
    elif selection == 5:
        number5 = pygame.image.load('Number5.png')
        pygameWindow.Draw_Image(number5, 540, 50)
        Capture5 = pygame.image.load('Captura5.png')
        pygameWindow.Draw_Image(Capture5, 550, 370)
    elif selection == 7:
        number7 = pygame.image.load('Number7.png')
        pygameWindow.Draw_Image(number7, 540, 50)
        Capture7 = pygame.image.load('Captura7.png')
        pygameWindow.Draw_Image(Capture7, 550, 370)
    elif selection == 8:
        number8 = pygame.image.load('Number8.png')
        pygameWindow.Draw_Image(number8, 540, 50)
        Capture8 = pygame.image.load('Captura8.png')
        pygameWindow.Draw_Image(Capture8, 550, 370)     

我在这里试图做的是该程序在计数器等于0时进行选择,然后绘制该选择,直到计数器重置回0,然后再进行另一个随机选择并绘制。当我运行此代码时,会出现此错误,但是我对hiw没有任何想法,我可以解决此问题并使代码执行我想要的操作。

变量counter的作用如下。它从0开始,然后将其值增加1,直到10,然后重置为0。由于只有counter等于0时才定义此选择。

1 个答案:

答案 0 :(得分:1)

如果counter不为0,则不会分配selection,因此您不应该对其进行测试。

听起来if的缩进应与selection的赋值相同。