Skip to main content
 首页 » 编程设计

Python:返回列表不起作用

2025年05月04日10daizhj

我正在尝试制作一个程序,可以在一个类(class)中添加/删除/显示学生,5 个类(class)是一个列表中的 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() 

我的错误是:

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 

我在 intro() 的末尾做了 return classes 但我发现这不起作用。 我听从了一些建议,但实际上什么也没发生:/

请您参考如下方法:

您在 intro 方法中定义了 classes,即使它返回了它,您的 action1 方法也看不到任何任何地方名为 classes 的变量。

Relevant answer on Python scope和 relevant documentation .