append是添加总和,而不是添加到列表中

flvtvl50  于 2021-09-08  发布在  Java
关注(0)|答案(1)|浏览(400)

我试图添加,但每当我试图在 main() ,它将打印平均值,但将其相加。

  1. def letter_grade(test_score):
  2. if int(test_score) >= 90:
  3. grade = 'A'
  4. elif int(test_score) >= 80:
  5. grade = 'B'
  6. elif int(test_score) >= 70:
  7. grade = 'C'
  8. elif int(test_score) >= 60:
  9. grade = 'D'
  10. else:
  11. grade = 'F'
  12. return grade
  13. def calc_avg_grade(test_score):
  14. average = []
  15. func_sum = sum(test_score)
  16. avg = func_sum/5.00
  17. average.append(avg)
  18. average.reverse()
  19. return average
  20. def main():
  21. grades = []
  22. i = 0
  23. outfile = open('studentgrades.txt', 'w')
  24. while i < 4:
  25. name = input("Enter the student name: ")
  26. for x in range(5):
  27. score = float(input("Enter number grade: "))
  28. grades.append(score)
  29. gradle = letter_grade(score)
  30. print(str(score) + ' - ' + gradle)
  31. avg_grade = calc_avg_grade(grades)
  32. avgg = avg_grade
  33. print(name + "'s average grade is: " + str(avgg))
  34. outfile.write(name + ', ' + str(avg_grade) + "\n")
  35. txtcontents = outfile.read()
  36. print(txtcontents)
  37. if __name__ == "__main__":
  38. main()

它运行append的部分是我遇到的问题: print(name + "'s average grade is: " + str(avgg)) 这是def main()。

ecbunoof

ecbunoof1#

我认为您没有重新初始化 grades :

  1. def main():
  2. # grades = [] # Not Here!
  3. i = 0
  4. outfile = open('studentgrades.txt', 'w')
  5. while i < 4:
  6. name = input("Enter the student name: ")
  7. grades = [] # here instead
  8. for x in range(5):
  9. score = float(input("Enter number grade: "))
  10. grades.append(score)
  11. gradle = letter_grade(score)
  12. print(str(score) + ' - ' + gradle)
  13. avg_grade = calc_avg_grade(grades)
  14. avgg = avg_grade
  15. print(name + "'s average grade is: " + str(avgg))
  16. outfile.write(name + ', ' + str(avg_grade) + "\n")
  17. txtcontents = outfile.read()
  18. print(txtcontents)

这样你会得到一个新的空的 grades 每名学生及 avg_grade 将是该学生的正确平均值。

展开查看全部

相关问题