Python变量未定义

时间:2015-10-30 15:20:18

标签: python text-files

目前我的代码有一个主菜单,它要求用户从打印出的选项中进行选择,这是在' def'功能。在我定义的变量的末尾,有一个输入提示,要求用户输入名为' option'的输入。但是,当我运行代码时,我得到一个语法。即:

代码:

def main_menu():
        print ("\nMain Menu        ")
        print ("\n1. Alphabetical Order (Highest Score only) = 'alpha'")
        option = input ("\nEnter your Option:  ")

main_menu()

option_class = input("\nWhich Class do you wish to preview: ")
one = "1.txt"

if option == "alpha".lower():
        if option_class == "1":
                with open (one, "r") as r:
                        for line in sorted(r):
                                print (line, end='')

运行代码时,我收到以下语法:

NameError: name 'option' is not defined

3 个答案:

答案 0 :(得分:1)

选项是本地定义的。您可以从函数返回输入的值并将其分配给如下选项:

def main_menu():
    print ("\nMain Menu        ")
    print ("\n1. Alphabetical Order (Highest Score only) = 'alpha'")
    return input ("\nEnter your Option:  ")

option = main_menu()

答案 1 :(得分:0)

您的变量option仅在您的函数main_menu()中本地定义,而非全局定义。

答案 2 :(得分:-1)

变量option仅对函数main_menu是本地的。你可以通过option global:

来修复它
def main_menu():
    global option
    #...
    option = '...'

请参阅:Global vs local variables