Python 为什么我会得到一个unboundLocalError?

Python 为什么我会得到一个unboundLocalError?,python,local,Python,Local,我得到的错误是: UnboundLocalError:赋值前引用的局部变量 代码: 在最后一行返回检查\u解决方案(用户\u解决方案,解决方案,计数)解决方案变量未定义正如Himanshu所说,这是因为您使用了一个变量解决方案,而您尚未对其进行任何赋值。所以在本例中,python在函数中查找它,如果不是,它将在全局中查找它。如果在使用前未找到任何赋值,则会引发UnboundLocalError,而且变量问题仅限于if块,因此我认为它在外部无法访问。因此,在嵌套if块之前为问题分配一些值,并在将其

我得到的错误是:

UnboundLocalError:赋值前引用的局部变量

代码:


在最后一行
返回检查\u解决方案(用户\u解决方案,解决方案,计数)
解决方案
变量未定义

正如Himanshu所说,这是因为您使用了一个变量
解决方案
,而您尚未对其进行任何赋值。所以在本例中,python在函数中查找它,如果不是,它将在全局中查找它。如果在使用前未找到任何赋值,则会引发
UnboundLocalError
,而且变量
问题
仅限于if块,因此我认为它在外部无法访问。因此,在嵌套if块之前为
问题
分配一些值,并在将其传递到函数之前检查
解决方案
变量应分配什么。

如果/elif/elif…假设这些条件都不满足?然后,未分配
问题
。但是您尝试在
user\u solution=get\u user\u solution(问题)
中使用它。看起来
问题
就是问题所在。解决方案取决于您的设计所说的在这种情况下应该发生什么。是否存在应使用的默认值?提出你自己的例外?返回错误代码?您必须做出决定。

请缩进代码,这样我们更容易回答。哪一行给出错误?错误信息比那一行大一点。。。它包括发生错误的行。你能发布整个错误消息吗?
def menu_option(index, count):
        import random
        random_number1 = random.randrange(1,31)
        random_number2 = random.randrange(1,31)
        if index == 1:
           problem = random_number1 + random_number2
        elif index == 2:
             problem = random_number1 - random_number2
        elif index == 3:
             problem = random_number1 * random_number2
        elif index == 4:
             problem = random_number1 // random_number2
        elif index == 5:
             problem = random_number1 % random_number2
        user_solution = get_user_solution(problem)
        return check_solution(user_solution, solution, count)