7-4 绩点计算

全屏浏览题目

切换布局

作者 肖艳萍

单位 浙大城市学院

平均绩点计算方法:(课程学分1 x 绩点+课程学分2 x 绩点+课程学分n x 绩点)/(课程学分1+课程学分2+课程学分n)

用户循环输入成绩对应的等级和课程学分,输入‘-1’时结束输入,计算学生平均绩点。等级与绩点对应关系如下表:

成绩 等级 绩点

90-100 A 4.0

85-89 A- 3.7

82-84 B+ 3.3

78-81 B 3.0

75-77 B- 2.7

72-74 C+ 2.3

68-71 C 2.0

64-67 C- 1.5

60-63 D 1.3

补考60 D- 1.0

60以下 F 0

如果输入的等级不在上述表中,则输出data error

输入格式:

逐行输入多门课程的分数和学分,输入格式:一行是五分制的分数, 一行是一个代表学分的数字,重复多次,直到输入‘-1’时结束输入。

输出格式:

平均绩点,保留两位小数‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬

输入样例:

在这里给出一组输入。例如:

A
2
A-
2
B
3
C
2
-1
 

输出样例:

在这里给出相应的输出。例如:

3.16
 

def get_gpa(grade):
    # 定义一个字典,将等级对应到绩点
    grade_to_gpa = {
        'A': 4.0,
        'A-': 3.7,
        'B+': 3.3,
        'B': 3.0,
        'B-': 2.7,
        'C+': 2.3,
        'C': 2.0,
        'C-': 1.5,
        'D': 1.3,
        'D-': 1.0,
        'F': 0.0
    }
    
    # 查找等级对应的绩点并返回
    if grade in grade_to_gpa:
        return grade_to_gpa[grade]
    else:
        return None


def calculate_gpa():
    total_credit = 0
    total_gpa_credit = 0
    
    while True:
        # 输入成绩对应的等级
        grade = input()
        
        # 输入‘-1’时结束输入
        if grade == '-1':
            break
        
        # 输入对应的学分
        credit = int(input())
        
        # 查找等级对应的绩点
        gpa = get_gpa(grade)
        
        # 判断输入的等级是否有效
        if gpa is None:
            print("data error")
            return None
        
        # 计算总学分和总绩点
        total_credit += credit
        total_gpa_credit += credit * gpa
    
    # 计算平均绩点并返回
    gpa_average = total_gpa_credit / total_credit
    return gpa_average


if __name__ == '__main__':
    # 调用函数计算平均绩点
    result = calculate_gpa()
    if result is not None:
        # 输出结果,保留两位小数
        print("{:.2f}".format(result))

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值