1443 :及格均分统计【C/C++/Java/Python】(字典)

题目描述

已知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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值