python入门——现有一个字典存放着学生的学号和成绩。成绩列表里的3个数据分别是学生的语文、数学和英语成绩...

这篇具有很好参考价值的文章主要介绍了python入门——现有一个字典存放着学生的学号和成绩。成绩列表里的3个数据分别是学生的语文、数学和英语成绩...。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

名人说:古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。——苏东坡
python学习记录: Code_流苏(CSDN)

一、问题描述

现有一个字典存放着学生的学号和成绩。成绩列表里的3个数据分别是学生的语文、数学和英语成绩:
dict={‘01’:[67,88,45],‘02’:[97,68,85],‘03’:[97,98,95],‘04’:[67,48,45],‘05’:[82,58,75],‘06’:[96,49,65]},完成以下操作:

① 编写函数,返回每门成绩均大于等于85的学生的学号。
② 编写函数,返回每一个学号对应的平均分(sum和len)和总分(sum),结果保留两位小数。
③ 编写函数,返回按总分升序排列的学号列表。

二、解决过程

①编写函数,返回每门成绩均大于等于85的学生的学号。

1️⃣思路简述

首先先读题,让我们编写函数,返回符合要求的"学号",我们发现一共六个学号,说明有六名学生,而且有对应的三门课的成绩,这个时候就要用到我们的字典了,此处字典键为学号,值为三门课的成绩,可以用列表表示出来。

接着,开始构思,要怎么实现呢?这个时候我们往上看,它是六名学生。所以我们就可以想到循环处理。那么怎么处理呢?就通过循环遍历字典,然后借助if条件语句进行判断,符合的k(键,本题k值代表学号)就加进列表(下面程序里创建的是a列表)中,之后将a返回给主函数,也就是返回了所有符合要求的k。

最后,返回主函数后,将其通过print输出,就是要求的答案了。

2️⃣编程实现

# 创作者:Code_流苏
# 开发时间:2022/9/27 20:30
my_dict = {'01':[67,88,45],'02':[97,68,85],'03':[97,98,95],'04':[67,48,45],'05':[82,58,75],'06':[96,49,65]}

def avg1(dict, score):
    a=[]
    for k, v in dict.items():
        if (v[0] >= score and v[1] >= score and v[2] >= score):
              a.append(k)
    return a
    
print(avg1(my_dict, 85))

3️⃣测试
python入门——现有一个字典存放着学生的学号和成绩。成绩列表里的3个数据分别是学生的语文、数学和英语成绩...

②编写函数,返回每一个学号对应的平均分(sum和len)和总分(sum),结果保留两位小数。

1️⃣思路简述

首先先读题,也是我们编写函数,返回每一个学号对应的平均分(sum和len)和总分(sum),同时输出的结果要保留两位小数。

接着,开始构思,该怎么去写呢?关键在哪里?我们仔细读题会发现“每个”学号对应的平均分和总分,注意是每个,所以这个时候,我们可能又要借助for循环处理了,循环遍历字典,将每个学号对应的平均分和总分进行求解,并且存入一个空字典中,但是这个时候就完成了吗?不要忘了后半句,结果保留两位小数,怎么保留呢?这个时候就要用到round函数了,通过round函数我们可以很方便地控制精度输出。完成了保留小数位的精度控制后,循环处理完毕,返回到主函数。

最后,返回主函数后,通过print进行输出即可。

2️⃣编程实现

# 创作者:Code_流苏
# 开发时间:2022/9/27 20:37
my_dict = {'01':[67,88,45],'02':[97,68,85],'03':[97,98,95],'04':[67,48,45],'05':[82,58,75],'06':[96,49,65]}

def avg2(my_dict):
    d1={}
    for k, v in my_dict.items():
        d1[k] = [round((sum(v) / len(v)),2), round((sum(v)),2)]
    return d1
    
print(avg2(my_dict))

3️⃣测试

python入门——现有一个字典存放着学生的学号和成绩。成绩列表里的3个数据分别是学生的语文、数学和英语成绩...

③编写函数,返回按总分升序排列的学号列表。

1️⃣思路简述

首先先读题,还是我们编写函数,返回按总分升序排序的学号列表。

接着,开始构思,这还按总分、还升序排列、还学号列表,什么情况?该怎么写呢?可以这样先写看它所说的总分,说明我们要对成绩进行求和,升序排列,说明我们要对总分进行升序排序,学号列表,说明排序后输出的应该是对应的学号形成的列表。那么我们同样地要借助for循环遍历字典,然后对每个学生的成绩进行求和,求和结果存起来,之后通过sorted函数进行排序。之后将总分排序成绩结果对应的学号,通过循环添加到列表中,然后return返回所得的学号列表到主函数。

最后,返回主函数后,通过print进行输出即可。

2️⃣编程实现

# 创作者:Code_流苏
# 开发时间:2022/9/27 20:45
my_dict = {'01':[67,88,45],'02':[97,68,85],'03':[97,98,95],'04':[67,48,45],'05':[82,58,75],'06':[96,49,65]}

def avg3(my_dict):

    l1 = []
    d2 = {}

    for k, v in my_dict.items():
        d2[round((sum(v)),2)] = k
    m=sorted(d2)

    for v in m:
        l1.append(d2[v])
    return l1

print(avg3(my_dict))

3️⃣测试

python入门——现有一个字典存放着学生的学号和成绩。成绩列表里的3个数据分别是学生的语文、数学和英语成绩...

2022.9.27记录:Code_流苏(CSDN)文章来源地址https://www.toymoban.com/news/detail-442621.html

到了这里,关于python入门——现有一个字典存放着学生的学号和成绩。成绩列表里的3个数据分别是学生的语文、数学和英语成绩...的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包