题目描述
已知A班程序设计课堂测试成绩,James获得91分,John获得20分,David获得30分,Daniel获得75分,Michael获得0分,Jane获得88分,Mary获得100分,Elizabeth获得50分,Ann获得60分,Sarah获得82分,Catherine获得10分。
随后部分同学参加了补考,请更新他们的成绩,然后统计及格同学的平均分。
例如给定输入【John 50】,应输出【82.67】;
例如给定输入【John 60】,应输出【79.43】;
例如给定输入【Elizabeth 100 David 30 Catherine 10 John 0 Michael 0】,应输出【85.14】。
提示
输出精确到小数点后两位。
输入输出格式
输入格式
输入补考人名和补考成绩,中间用空格分隔。
输出格式
统计及格同学的平均分,精确到小数点后两位。
输入输出样例
输入
John 50
输出
82.67
def calculate_average_grade(grades):
total = sum(grades)
average = total / len(grades)
print(f'{average:.2f}')
# 初始成绩字典
grades = {
'James': 91,
'John': 20,
'David': 30,
'Daniel': 75,
'Michael': 0,
'Jane': 88,
'Mary': 100,
'Elizabeth': 50,
'Ann': 60,
'Sarah': 82,
'Catherine': 10
}
# 更新补考成绩
input_data = input().split()
for i in range(0, len(input_data), 2):
student_name = input_data[i]
new_grade = int(input_data[i+1])
grades[student_name] = new_grade
# 统计及格同学的成绩
passing_grades = [grade for grade in grades.values() if grade >= 60]
average_grade = calculate_average_grade(passing_grades)