我开始在业余时间进行编码,并决定通过制作一个小口袋妖怪式的格斗游戏来挑战自我。我目前正在编码菜单及其选项,但是它出乎意料地开始抛出名称错误。
一旦我移动了代码的位置,它就会起作用,例如,在程序中上下移动被认为是麻烦的代码行,并且这种代码以这种方式工作,无论我希望如何做。
def menu():
print("\t:What Do You Want To Do:\nA:Play\nB:Login\nC:Exit\nAnswer With Caps Lock On")
selection = input("Please Choose An Option:")
menu()
valid_option = ['A','B','C']
A = ['A']
B = ['B']
C = ['C']
if selection in valid_option:
print("...")
else:
print("Invalid Choice")
menu()
答案 0 :(得分:1)
名称selection
在函数menu
中是 local 。当控件将要退出该功能时,该名称将被破坏。
如果要使用此名称绑定的 value ,则有两种选择:
selection
为全局变量(并且不要忘记将global selection
放在之前,尝试在函数中对其进行修改)。return selection
,然后使用此返回值,例如:selection = main()
。答案 1 :(得分:1)
替换
def menu():
print("\t:What Do You Want To Do:\nA:Play\nB:Login\nC:Exit\nAnswer With Caps Lock On")
selection = input("Please Choose An Option:")
menu()
使用
def menu():
print("\t:What Do You Want To Do:\nA:Play\nB:Login\nC:Exit\nAnswer With Caps Lock On")
return input("Please Choose An Option:")
selection = menu()
然后,作为强制性作业,阅读有关可变范围(python variable scope
的大量结果)。