【发布时间】:2014-04-14 16:51:33
【问题描述】:
这里需要一些指导。这可能是一个愚蠢的错误,但是我收到“builtins.NameError:全局名称-未定义”错误,我不明白为什么-我仍在学习该语言:)。
这是我的代码:
def option(x):
if x == "E":
enter()
elif x == "V":
view()
else:
exit()
def enter():
msg = input("Enter the message\n")
main()
def view():
##if msg == 0:
#print("no message yet")
#main()
#else:
print("The message is:", msg )
main()
def exit():
print("Goodbye!")
def main():
print("Welcome to BBS")
print("MENU")
print("(E)nter a message")
print("(V)iew message")
print("e(X)it")
print("Enter your selection:")
choice = input()
option(choice)
#msg = 0
main()
我的问题是,即使我先选择“E”选项,我也会得到这个:
Traceback (most recent call last):
File "C:\Program Files (x86)\Wing IDE 101 5.0\src\debug\tserver\_sandbox.py", line 36, in <module>
File "C:\Program Files (x86)\Wing IDE 101 5.0\src\debug\tserver\_sandbox.py", line 33, in main
File "C:\Program Files (x86)\Wing IDE 101 5.0\src\debug\tserver\_sandbox.py", line 3, in option
pass
File "C:\Program Files (x86)\Wing IDE 101 5.0\src\debug\tserver\_sandbox.py", line 11, in enter
File "C:\Program Files (x86)\Wing IDE 101 5.0\src\debug\tserver\_sandbox.py", line 33, in main
File "C:\Program Files (x86)\Wing IDE 101 5.0\src\debug\tserver\_sandbox.py", line 5, in option
File "C:\Program Files (x86)\Wing IDE 101 5.0\src\debug\tserver\_sandbox.py", line 18, in view
builtins.NameError: global name 'msg' is not defined
可以指导一下吗?我一直在搜索信息并没有找到任何东西,我的结论是这可能是非常愚蠢和愚蠢的东西。
另外,正如你们从我评论中看到的那样,我试图通过检查 msg != 0 来限制“视图”给出错误 - 我在 main() 中设置了 msg = 0 -这显然不起作用,因为在通过 enter() 之后它会返回 main() 并再次使 msg == 0 。你们能否将我链接到一个页面/指南,以帮助我了解如何解决这个问题?我不想被勺子喂那么多..
谢谢,
伊达
【问题讨论】:
-
看看这篇关于scope的文章。
标签: python python-3.x nameerror