Python &引用;名称错误:名称';选择';“未定义”;显示错误

Python &引用;名称错误:名称';选择';“未定义”;显示错误,python,python-3.x,Python,Python 3.x,我开始在空闲时间编写代码,并决定通过制作一款小型口袋妖怪式的战斗机游戏来挑战自我。我目前正在对菜单及其选项进行编码,但它意外地开始抛出名称错误 一旦我在代码的位置上移动,比如在程序中上上下下移动一行令人相信的麻烦代码,代码就可以这样工作,不管它在我希望它做什么 def menu(): print("\t:What Do You Want To Do:\nA:Play\nB:Login\nC:Exit\nAnswer With Caps Lock On") selection =

我开始在空闲时间编写代码,并决定通过制作一款小型口袋妖怪式的战斗机游戏来挑战自我。我目前正在对菜单及其选项进行编码,但它意外地开始抛出名称错误

一旦我在代码的位置上移动,比如在程序中上上下下移动一行令人相信的麻烦代码,代码就可以这样工作,不管它在我希望它做什么

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()

名称
选项
是功能
菜单
的本地选项。当控件即将退出函数时,此名称将被销毁

如果要使用此名称绑定到的值,有两种选择:

  • selection
    设置为全局变量(在尝试在函数中修改它之前,不要忘记将
    global selection
  • 从函数返回选择
    ,然后使用此返回值,如:
    selection=main()

  • 名称
    选项
    是功能
    菜单
    的本地选项。当控件即将退出函数时,此名称将被销毁

    如果要使用此名称绑定到的值,有两种选择:

  • selection
    设置为全局变量(在尝试在函数中修改它之前,不要忘记将
    global selection
  • 从函数返回选择
    ,然后使用此返回值,如:
    selection=main()
  • 替换

    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()
    

    然后作为强制性作业,阅读变量范围(python变量范围的大量结果)

    更换

    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()
    


    然后作为强制性作业,阅读变量范围(python变量范围的大量结果)

    您从未
    从函数中返回所选内容或将其分配给任何对象您从未
    从函数中返回所选内容或将其分配给任何对象