如何解决此UnBoundLocalError范围问题?

时间:2019-07-13 19:44:03

标签: python function

我正在使用功能迷你游戏进行街机游戏。我使用硬币作为游戏进度变量,它是全局变量。但是,当我运行该程序并玩剪刀石头布游戏并退出时,它告诉我硬币是局部变量,并且在赋值之前已被引用。

以前,这是通过rps_score变量或剪刀石头布得分变量发生的。这是一个全局变量,因此可以防止错误。当我玩剪刀石头布游戏时,它使用rps_score变量。通过在rps函数开始时将rps_score分配为0来解决此问题。

此后发生硬币错误。当我离开石头剪刀布游戏时,它说出未绑定错误(因为我只在函数结尾使用了coins变量,这是离开游戏部分所在的位置)。我想到的唯一解决方案是在函数开始时说硬币=硬币,当然,它不起作用。

# this is at the beginning(these are global variables)
coins = 0
rps_score = 0

...

def rps():
    print("Welcome to Rock, Paper, Scissors!")
    print("Type R for Rock, P for Paper, S for Scissors")
    print("For your convenience, turn on CAP LOCK")
    rps_score = 0
 # took the coins = coins away
    while True: # main loop, runs computer-generated moves and compares with 
                  the player moves, changes rps_score
        ...

        ...
        elif player_move == "L":
            print("You received " + str(rps_score) + " coins")
            coins += rps_score
            rps_score = 0
            game_selection()
        else:
            print("Error")

UnboundLocalError: local variable 'coins' referenced before assignment

0 个答案:

没有答案