我得到的错误是:
UnboundLocalError:赋值前引用的局部变量?
代码:
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)
答案 0 :(得分:0)
在最后一行return check_solution(user_solution, solution, count)
solution
变量未定义
答案 1 :(得分:0)
喜欢Himanshu说这是因为你使用了一个变量solution
,你还没有完成任何任务。所以在这种情况下,如果不是python在函数内部查找它,它将在全局中查找它。如果它在使用之前没有找到它的任何赋值它会引发UnboundLocalError
,变量problem
也被限制在if块中,所以我认为它不能在外面访问。因此,在嵌套if块之前为problem
分配一些值,并在函数传递之前检查solution
变量应该分配的内容。
答案 2 :(得分:0)
if/elif/elif ...
的链条假设没有满足这些条件?然后未分配problem
。但您尝试在user_solution = get_user_solution(problem)
中使用它。看起来problem
是问题所在。解决方案取决于您的设计在这种情况下应该发生的情况。是否应该使用默认值?举起你自己的例外?返回错误代码?你必须决定。