我一直收到一个未绑定的本地错误。我不明白它为什么会发生,如果程序运行正常,它应该直接进入main函数中print_et_list函数的第二个赋值,循环自身而不实际循环。该程序仅在hey_user函数中使用sys.exit()退出。
我将整个程序包含在上下文中,不会太长。如果您想查看我在程序中使用的文本文件,请告诉我,但我确信它不太可能是问题的根源。
答案 0 :(得分:3)
在设置局部变量之前读取局部变量的值时会发生UnboundLocalError。为什么得分是局部变量而不是全局变量?因为你在函数中设置它。考虑这两个功能:
def foo():
print a
VS
def bar():
a = 1
print a
在foo()中,a是全局的,因为它没有在函数内部设置。在bar()中,a是本地的。现在考虑这段代码:
def baz():
print a
a = 1
这里,a在函数内设置,因此它是本地的。但它在print语句时尚未设置,因此您将获得UnboundLocalError。
答案 1 :(得分:0)
您忘了将score
传递给hey_user()
。
答案 2 :(得分:0)
看起来它可能是得分变量。它是main()中的本地,但您尝试在hey_user()中引用它。
答案 3 :(得分:0)
如果您想将得分作为全局变量,请务必使用global
声明声明:
def main(): 全球得分 得分= 0 问题,解决方案= print_et_list() scoresofar = hey_user(解决方案) 打印“\ n你的分数现在”,得分 问题,解决方案= print_et_list()