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