【发布时间】:2017-09-20 12:20:25
【问题描述】:
我必须输入每个学生的班级名称、教师姓名、姓名/字母等级。将信息写入文件,然后替换每个等级的数量。我在第 19、55 和 41 行遇到错误。第 19 行给出了错误类型“str”对象不可调用。任何人都可以帮忙吗?这是我所拥有的:
Grades = open("ClassNameGrades.txt", "w")
count = 0
A=0
B=0
C=0
D=0
F=0
def gradeInput(count,numStudents,A,B,C,D,F):
while count<numStudents:
studentName=input("Enter name of student - ")
Grades.write(studentName("\n")) <<<Error#1
studentGrade=input("Enter student letter grade - ", ).upper()
Grades.write(studentGrade("\n"))
count=count+1
if studentGrade =="A":
A+=1
elif studentGrade =="B":
B+=1
elif studentGrade =="C":
C+=1
elif studentGrade =="D":
D+=1
elif studentGrade =="F":
F+=1
return count,numStudents,A,B,C,D,F
def main():
Grades.write=input("Enter name of class - ",)
Grades.write= input("Enter name of faculty - ")
numStudents =int(float(input("Enter the amount of students - ")))
gradeInput(count,numStudents,A,B,C,D,F) <<Error#2
print("Students who got an A = ", A)
print("Students who got an B = ", B)
print("Students who got an C = ", C)
print("Students who got an D = ", D)
print("Students who got an F = ", F)
main() <<Error#3
Grades.close()
【问题讨论】:
-
我猜你想要
Grades.write(studentName + "\n") -
不,同样的错误。
-
奇怪的是,写学生的名字有问题,但是写成绩就可以了。
-
studentName("\n")... 这是一个函数调用,但 studentName 是一个字符串,而不是一个函数。您可以使用studentName + "\n"或"{}\n".format(studentName)附加换行符。 -
gradeInput(count,numStudents,A,B,C,D,F) <<Error#2... 这个函数返回它的新值,但你不记得了。 A、B 等中的整数没有改变。gradInput只更改了这些变量的本地副本。