首页 > 解决方案 > 如何保存以下程序的输出?

问题描述

有人可以帮我完成以下功能程序:

==========================================

print("Function program to ad students")

students = []


def get_student_name():
    student_name = []
    for student in students:
        student_name = student.name()
    return student_name


def print_student_name():
    student_name = get_student_name()
    print(student_name)


def add_student(name, id1):
    student = {"Name": name, "ID": id1}
    students.append(student)


def save_file(student):
    try:
        file = open("students.txt", "a")
        file.write(student + "\n")
        file.close()
    except Exception:
        print("Not saved")

def read_file():
    try:
        file = open("students.txt", "r")
        for student in file.readlines():
            add_student(student)
        file.close()
    except Exception:
        print("Not read")


read_file()
print(students)

Des = input("Enter yes or no: ")

while Des == "yes":
    add_student(name=input("Enter name: "), id1=input("Enter ID: "))
    print(students)
    Des = input("Enter yes or no: ")

print("outside loop")

save_file(students)

==========================================

该文件没有被保存,我认为这是第一个函数中第 9 行的问题,即 {student_name = student.name()}

先感谢您

标签: pythonpython-3.x

解决方案


您的代码中有多个错误。首先,在read_file您使用一个参数调用函数add_student时(需要 2 个参数)。接下来,在save_file您的字典中添加一个字符串 ( "\n")(该参数student恰好是一个字典)。

尝试清理你的代码,你会发现更多。例如,您使用students您期望单个学生听写的列表,等等......


推荐阅读