Python3 TypeError:接受1个位置参数,但给定2个

时间:2018-08-30 14:11:46

标签: python

我是编程新手,这是我的代码。 但是我收到了错误信息,请附加...请帮助我。

students = []

def add_student(name, student_id):
    student = {"name": name, "student_id": student_id}
    students.append(student)

name = input("Enter student name: ")
student_id = input("Enter student ID: ")

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

add_student(name, student_id)
save_file(name, student_id)

2 个答案:

答案 0 :(得分:2)

您的save_file方法采用名为student的变量,但是您传入了namestudent_id。因此,您的方法需要一个参数,但有两个参数。认错吧。

您可以通过添加另一个参数来修改方法以同时使用名称和ID,这与您对add_student所做的类似。我也建议您在问问题之前先查看堆栈跟踪并尝试了解发生了什么。您将通过这种方式学到更多,并且可能无需寻求帮助即可了解自己的问题。

答案 1 :(得分:1)

函数save_file()只允许获取一个参数student,但是您正在向函数传递两个参数name, student_id。那是错误!

def save_file(student)更改为def save_file(student, student_id):,以纠正错误。

希望这会有所帮助!干杯!