#GPA计算(python)

 欢迎光临我的blog!专栏记录本萌新初学python解题情况,欢迎大家交流思考

 题目如上,较综合。

【解】

# 引入 randint 函数。
from random import randint

# 定义构造函数 score,使用 randint 函数生成四门课程的成绩,返回这个学生的四门课程成绩。
def score():
    # 使用字典推导式生成四门课程的成绩。
    return {'高数':randint(60,100),'制图':randint(60,100),'英语':randint(60,100),'Python':randint(60,100)}

# 初始化字典 Tab,并使用 score 函数生成每个学生的四门课程成绩,存储在字典 Tab 中。
Tab={}
for i in range(10):
    Tab[f"学生{i+1}"]=score()

# 遍历字典 Tab,输出每个学生的四门课程成绩。
for d in Tab.keys():
    print(d,Tab[d])

# 定义构造函数 ave_4,计算每个学生的加权平均成绩,并返回。
def ave_4 (Ai):
    # 定义学分字典。
    学分={'高数':5,'制图':3.5,'英语':4,'Python':1.5}

    # 使用字典推导式计算加权平均成绩。
    return sum(学分[i] * Ai[i] for i in 学分.keys()) / sum(学分.values())

# 初始化空列表 l 和空字典 rank。
l=[];rank={}

# 遍历字典 Tab 中的每个学生名字。
for i in Tab.keys():
    # 使用 ave_4 函数计算该学生的加权平均成绩,并将加权平均成绩和学生名字作为键值对存储在字典 rank 中。
    t=ave_4(Tab[i])
    rank[t]=i

    # 如果该学生的加权平均成绩高于 80 分,将该学生名字添加到列表 l 中。
    if t>=80:l.append(i)

# 输出加权平均成绩高于 80 分的学生名字。
print ("加权平均成绩大于80分的学生有:",*l)

# 将字典 rank 中的键按照从大到小的顺序排序,并将排序后的结果存储在列表 new_rank 中。
new_rank=sorted(rank.keys(),reverse=True)

# 输出提示信息。
print("排名从高到低为:",end='')

# 遍历列表 new_rank,输出每个键对应的值。
for i in new_rank:
    print (rank[i],end=" ")

有点臃肿,有空了再改进

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值