Python 初学者 - 类型错误:"str"对象不可调用



初学者问题,从我所能收集到的信息来看,我设法错误地分配了一个字符串,但我看不到我哪里出错了。

任何帮助将不胜感激,代码如下:

students = []
def add_student(name, student_id):
student = {"name": name, "student_id": student_id}
students.append(student)
while 1 == 1:
try:
add_student = input("Do you wish to enter the name of a Student (Yes/No)?")
if add_student == "Yes":
student_name = input("Enter student name: ")
print(student_name)
student_id = input("Enter student ID: ")
print(student_id)
print(student_name + ' ' + student_id)
add_student(student_name, student_id)
print(student_name+' '+student_id)
print(*students)
elif add_student == "No":
break
else:
print("Invalid answer 1")
except KeyError:
print("Invalid answer 2")
print(*students)

您已经调用了函数def add_student(...),并将变量称为add_student = ...。当变量被调用时,解释器应该如何知道你想要这个函数?

事实上,你已经智取了这个函数。当你调用它时,它已经不存在了。将变量或函数重命名为其他名称。我会让注释帮助你解决代码中的某些其他问题(全局列表......(。

你的函数和局部变量名相同

students = []
def add_student_data(name, student_id):
student = {"name": name, "student_id": student_id}
students.append(student)
while 1 == 1:
try:
add_student = input("Do you wish to enter the name of a Student (Yes/No)?")
if add_student == "Yes":
student_name = input("Enter student name: ")
print(student_name)
student_id = input("Enter student ID: ")
print(student_id)
print(student_name + ' ' + student_id)
add_student_data(student_name, student_id)
print(student_name+' '+student_id)
print(*students)
elif add_student == "No":
break
else:
print("Invalid answer 1")
except KeyError:
print("Invalid answer 2")
print(*students)

方法 def add_student(name, student_id( 的名称和变量add_student = input("是否要输入学生姓名(是/否(?"(

的名称相同。这里也存在类似的问题。

您必须更改其中一个的名称。

students = []

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

while 1 == 1:
try:
user_respond = raw_input("Do you wish to enter the name of a Student (Yes/No)?")
if user_respond == "Yes":
student_name = raw_input("Enter student name: ")
print(student_name)
student_id = raw_input("Enter student ID: ")
print(student_id)
print(student_name + ' ' + student_id)
add_student(student_name, student_id)
print(student_name + ' ' + student_id)
print(students)
elif user_respond == "No":
break
else:
print("Invalid answer 1")
except KeyError:
print("Invalid answer 2")
print(students)

相关内容

最新更新