Append 是添加总和而不是添加到列表 python
Append is adding the sum instead of adding to a list python
我尝试追加,但每当我尝试在 main()
中打印它时,它会打印平均值但相加。
def letter_grade(test_score):
if int(test_score) >= 90:
grade = 'A'
elif int(test_score) >= 80:
grade = 'B'
elif int(test_score) >= 70:
grade = 'C'
elif int(test_score) >= 60:
grade = 'D'
else:
grade = 'F'
return grade
def calc_avg_grade(test_score):
average = []
func_sum = sum(test_score)
avg = func_sum/5.00
average.append(avg)
average.reverse()
return average
def main():
grades = []
i = 0
outfile = open('studentgrades.txt', 'w')
while i < 4:
name = input("Enter the student name: ")
for x in range(5):
score = float(input("Enter number grade: "))
grades.append(score)
gradle = letter_grade(score)
print(str(score) + ' - ' + gradle)
avg_grade = calc_avg_grade(grades)
avgg = avg_grade
print(name + "'s average grade is: " + str(avgg))
outfile.write(name + ', ' + str(avg_grade) + "\n")
txtcontents = outfile.read()
print(txtcontents)
if __name__ == "__main__":
main()
它运行我遇到问题的附加部分是:
print(name + "'s average grade is: " + str(avgg))
这是 def main()。
我认为你没有重新初始化 grades
:
def main():
# grades = [] # Not Here!
i = 0
outfile = open('studentgrades.txt', 'w')
while i < 4:
name = input("Enter the student name: ")
grades = [] # here instead
for x in range(5):
score = float(input("Enter number grade: "))
grades.append(score)
gradle = letter_grade(score)
print(str(score) + ' - ' + gradle)
avg_grade = calc_avg_grade(grades)
avgg = avg_grade
print(name + "'s average grade is: " + str(avgg))
outfile.write(name + ', ' + str(avg_grade) + "\n")
txtcontents = outfile.read()
print(txtcontents)
这样您就可以为每个学生得到一个新的空值 grades
,avg_grade
将是该学生的正确平均值。
我尝试追加,但每当我尝试在 main()
中打印它时,它会打印平均值但相加。
def letter_grade(test_score):
if int(test_score) >= 90:
grade = 'A'
elif int(test_score) >= 80:
grade = 'B'
elif int(test_score) >= 70:
grade = 'C'
elif int(test_score) >= 60:
grade = 'D'
else:
grade = 'F'
return grade
def calc_avg_grade(test_score):
average = []
func_sum = sum(test_score)
avg = func_sum/5.00
average.append(avg)
average.reverse()
return average
def main():
grades = []
i = 0
outfile = open('studentgrades.txt', 'w')
while i < 4:
name = input("Enter the student name: ")
for x in range(5):
score = float(input("Enter number grade: "))
grades.append(score)
gradle = letter_grade(score)
print(str(score) + ' - ' + gradle)
avg_grade = calc_avg_grade(grades)
avgg = avg_grade
print(name + "'s average grade is: " + str(avgg))
outfile.write(name + ', ' + str(avg_grade) + "\n")
txtcontents = outfile.read()
print(txtcontents)
if __name__ == "__main__":
main()
它运行我遇到问题的附加部分是:
print(name + "'s average grade is: " + str(avgg))
这是 def main()。
我认为你没有重新初始化 grades
:
def main():
# grades = [] # Not Here!
i = 0
outfile = open('studentgrades.txt', 'w')
while i < 4:
name = input("Enter the student name: ")
grades = [] # here instead
for x in range(5):
score = float(input("Enter number grade: "))
grades.append(score)
gradle = letter_grade(score)
print(str(score) + ' - ' + gradle)
avg_grade = calc_avg_grade(grades)
avgg = avg_grade
print(name + "'s average grade is: " + str(avgg))
outfile.write(name + ', ' + str(avg_grade) + "\n")
txtcontents = outfile.read()
print(txtcontents)
这样您就可以为每个学生得到一个新的空值 grades
,avg_grade
将是该学生的正确平均值。