Python:返回列表不起作用

Reg*_*ser 1 python python-3.4

我正在尝试制作一个程序,可以在一个类中添加/删除/显示学生,这5个类是列表中的5个列表.

非常感谢帮助.

当我运行此代码时:

global classes
def intro():
    print("Welcome to Powerschool v2.0!")
    print("Actions:")
    print("1. Add Student")
    print("2. Delete Student")
    print("3. Show Students in a Class")
    print("4. Show All Students")
    x = int(input())
    while x<1 or x>4:
        print ("Please choose an action, 1-4.")
        x = int(input())
    if x == 1:
        action1()
    elif x == 2:
        action2()
    elif x == 3:
        action3()
    elif x == 4:
        action4()
    classes = [[],[],[],[],[]]
    return classes
def action1():
    print("Which Class? 1-5")
    a = int(input())
    print("Please enter the student's name.")
    z = input()
    classes[a-1].append(z)
    again()
def action2():
    print ("Which Class? 1-5")
    print ("Which student?")
    again()
def action3():
    print ("Which Class? 1-5")
    y = int(input())
    if y == 1:
        print (classes[0])
    elif y == 2:
        print (classes[1])
    elif y == 3:
        print (classes[2])
    elif y == 4:
        print (classes[3])
    elif y == 5:
        print (classes[4])
    again()
def action4():
    print (classes)
    again()
def again():
    print("Would you like to do something else? y/n")
    h = input()
    if h == "y":
        intro()
    else:
        quit
def main():

    intro()

main()
Run Code Online (Sandbox Code Playgroud)

我的错误是:

Traceback (most recent call last):
  File "C:\Documents and Settings\user1\My Documents\Downloads\az_studenttracker.py", line 67, in <module>
    main()
  File "C:\Documents and Settings\user1\My Documents\Downloads\az_studenttracker.py", line 65, in main
    intro()
  File "C:\Documents and Settings\user1\My Documents\Downloads\az_studenttracker.py", line 19, in intro
    action1()
  File "C:\Documents and Settings\user1\My Documents\Downloads\az_studenttracker.py", line 33, in action1
    classes[a-1].append(z)
NameError: name 'classes' is not defined
Run Code Online (Sandbox Code Playgroud)

return classes在intro()结束时做了但是我发现这不起作用.我遵循了一些建议,没有发生任何事情:/

Cel*_*leo 5

classes在你的intro方法中定义,即使它返回它,你的action1方法也看不到任何名字的变量classes.

有关Python范围相关文档的相关答案.