我正在完成一个班级的作业,教师可以输入学生证号码和学生成绩。最终成绩将计算并返回学生编号旁边。我可以很好地计算最终成绩,但我不能将成绩附加到学生成绩列表中。
def assignments():
assign1 = int(input("Assignment 1 grade: "))
if assign1 > 100:
print ("Please input a valid grade value.")
assign1 = int(input("Assignment 1 grade: "))
assign2 = int(input("Assignment 2 grade: "))
if assign2 > 100:
print ("Please input a valid grade value.")
assign2 = int(input("Assignment 2 grade: "))
assign3 = int(input("Assignment 3 grade: "))
if assign3 > 100:
print ("Please input a valid grade value.")
assign3 = int(input("Assignment 3 grade: "))
assign4 = int(input("Assignment 4 grade: "))
if assign4 > 100:
print ("Please input a valid grade value.")
assign4 = int(input("Assignment 4 grade: "))
assign5 = int(input("Assignment 5 grade: "))
if assign5 > 100:
print ("Please input a valid grade value.")
assign5 = int(input("Assignment 5 grade: "))
assign6 = int(input("Assignment 6 grade: "))
if assign6 > 100:
print ("Please input a valid grade value.")
assign6 = int(input("Assignment 6 grade: "))
assign7 = int(input("Assignment 7 grade: "))
if assign7 > 100:
print ("Please input a valid grade value.")
assign7 = int(input("Assignment 7 grade: "))
assign8 = int(input("Assignment 8 grade: "))
if assign8 > 100:
print ("Please input a valid grade value.")
assign8 = int(input("Assignment 8 grade: "))
assign9 = int(input("Assignment 9 grade: "))
if assign9 > 100:
print ("Please input a valid grade value.")
assign9 = int(input("Assignment 9 grade: "))
assign10 = int(input("Assignment 10 grade: "))
if assign10 > 100:
print ("Please input a valid grade value.")
assign10 = int(input("Assignment 10 grade: "))
assignGrade = assign1 + assign2 + assign3 + assign4 + assign5 + assign6 + assign7 + assign8 + assign9 + assign10
aGrade = assignGrade / 10
print("The final grade for all assignments is: ")
print(aGrade)
midterm = int(input("Midterm grade: "))
if midterm > 100:
print ("Please input a valid grade value.")
midterm = int(input("Midterm grade: "))
finalExam = int(input("Final Exam grade: "))
if finalExam > 100:
print ("Please input a valid grade value.")
finalExam = int(input("Final Exam grade: "))
testsGrade = midterm + finalExam
tGrade = testsGrade / 2
print("The final grade for all test is: ")
print(tGrade)
participation = int(input("Participation grade: "))
if participation > 100:
print ("Please input a valid grade value.")
participation = int(input("Participation grade: "))
partGrade = participation
print("The final grade for Participation is: ")
print(partGrade)
finalGrade = aGrade + tGrade + partGrade / 3
def students():
netIDList = []
maxLengthList = 6
while len(netIDList) < maxLengthList:
ID = input("Enter Student's Net ID: ")
netIDList.append(ID)
for s in netIDList:
print("Please input grades for student " + s)
assignments()
f = assignments().finalGrade
netIDList.append(": " + f)
print(netIDList)
def main():
students()
main()
答案 0 :(得分:0)
你的问题在这里:
f = assignments().finalGrade
netIDList.append(": " + f)
您正在访问assignments
,因为它是一个对象而不是一个函数。您希望assignments
返回要追加的值。
def assignments():
# do all your input and calculation here
finalGrade = aGrade + tGrade + partGrade / 3
return finalGrade
这样,函数会将此值发送回调用它的位置。然后,改变
f = assignments().finalGrade
到
f = assignments()
编辑: 您的for循环应该基本上看起来像这样:
for s in netIDList:
print("Please input grades for student " + s)
f = assignments()
netIDList.append(": " + f)
但这会导致一个有点令人困惑的列表:
[student1_name, student2_name, student1_score, student2_score]
所以我会使用字典:
student_score_map = {}
for s in netIDList:
print("Please input grades for student " + s)
f = assignments()
student_score_map[s] = f
通过这种方式,您可以打印所有学生姓名及其分数,如下所示:
for s in netIDList:
print(s + ' final score:' + student_score_map[s])