<p>我建议另一种方法。首先,你把你的名字和成绩储存在字典里:</p>
<pre><code>grades = {'Ken': [5,8,9], 'Hiro': [10,11,20], 'Nick': [20,20,20]}
</code></pre>
<p>然后,在字典上循环,计算每个学生的平均数,并准备计算全球平均数:</p>
<pre><code>averages = {}
sum_of_grades, number_of_grades = 0, 0
for name, marks in grades.items():
averages[name] = sum(marks) / len(marks) # simple arithmetic average
sum_of_grades += sum(marks)
number_of_grades += len(marks)
</code></pre>
<p>最后,计算全球平均值:</p>
<pre><code>final_average = sum_of_grades / number_of_grades
</code></pre>
<p>以下是完整的代码,其中计算被封装在一个函数中:</p>
<pre><code>grades = {'Ken': [5,8,9], 'Hiro': [10,11,20], 'Nick': [20,20,20]}
def compute_averages(grades):
averages = {}
sum_of_grades, number_of_grades = 0, 0
for name, marks in grades.items():
averages[name] = sum(marks) / len(marks)
sum_of_grades += sum(marks)
number_of_grades += len(marks)
final_average = sum_of_grades / number_of_grades
return averages, final_average
averages, final_average = compute_averages(grades)
for name, avg in averages.items():
print(name, round(avg, 2))
print('Final average', round(final_average, 2))
</code></pre>