python 文件 成绩分析2

‘’’
文件score.txt中存储了学生的考试信息,内容如下
小明,98,96
小刚,90,94
小红,90,94
小王,98,96
小刘,80,90
小赵,90,96
第二列是数学成绩,第三列是语文成绩
请写程序分析:

  1. 哪些同学语文成绩是相同的?
  2. 哪些同学数学成绩是相同的?
  3. 哪些同学语文和数学成绩都是相同的?
  4. 总分最高的同学是谁,分数是多少?
  5. 总分的平均分是多少?

def read_score(filename):# 打开文件f = open(filename, 'r', encoding='utf-8')# 读取文件内容data = f.readlines()  # 一次读取所有行data = [i.strip().split(',') for i in data]  # strip()去除字符串两端的空格和换行符f.close()return datadef analyse_score():# 获取数据datas = read_score('score2.txt')# # 获取语文成绩列表# chinese_scores = [int(score[2]) for score in data] #[96, 94, 94, 96, 90, 96]stu_lst=[]for data in datas:name=data[0]math=int(data[1])chinese=int(data[2])stu_lst.append({'name':name,'math':math,'chinese':chinese}) #得到一个字典math_dict={}chinese_dict={}ys_dict={}max_score=0stu_score=0for stu in stu_lst:name=stu['name']math=stu['math']chinese=stu['chinese']score_sum=math+chinese #获取每次语文加数学的分数stu_score+=score_sum #得到总分if score_sum>max_score:max_score=score_sum #计算总分最高chinese_dict.setdefault(chinese,[])chinese_dict[chinese].append(name) #把语文成绩相同的同学名字添加到列表中math_dict.setdefault(math,[])math_dict[math].append(name) #把数学成绩相同的同学名字添加到列表中ys_dict.setdefault((math,chinese),[])ys_dict[(math,chinese)].append(name) #把语文和数学成绩相同的同学名字添加到列表中for k,v in chinese_dict.items():if len(v)>1:print(f'语文成绩相同的同学有:{v},他们的语文成绩是{k}')print('*'*20)for k,v in math_dict.items():if len(v)>1:print(f'数学成绩相同的同学有:{v},他们的数学成绩是{k}')print('*' * 20)for score,name_lst in ys_dict.items():sum_score=sum(score)if sum_score==max_score:print(f'总分最高的同学是:{name_lst},他们的总分是{max_score}')if len(name_lst)>1:print(f'语文和数学成绩相同的同学有:{name_lst},他们的总分是{max_score}')print(f'总分平均分是:{stu_score / len(stu_lst):.2f}')if __name__ == '__main__':analyse_score()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/638070.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS开发环境搭建 移动开发 鸿蒙开发 ArkTS

📜目录 💡 环境搭建 🚀安装nodejs 🤵安装ohpm 🍔安装SDK 💥Emulator安装 🌶️新建ArkTs项目 🏆️ArkTS语言 ✨️基本语法 🎈 声明式UI描述 🍱组件 …

如何在 PyCharm 中集成 GitLab?

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab :https://gitlab.cn/install?channelcontent&utm_sourcecsdn 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署…

初识C++·类和对象(中)(3)

前言,最难的已经结束了,来点轻松了放松一下。 目录 1 流重载 2 const成员 3 取地址及const取地址操作符重载 1 流重载 C语言中printf和scanf是有局限性,只能直接打印内置类型,对于自定义类型就哦豁了,所以在C中就…

基础SQL DDL语句

MySQL的DDL(Data Definition Language)语句用于定义或修改数据库结构。 DDL数据库操作 查看所有的数据库 show databases; 红色圈起来的是系统数据库,是系统自带的 mysql:包含存储MySQL服务器运行时所需信息的表。这包括数据字典…

【Linux】小知识点温习---命令

许多常见命令会用,但是很少注意他们的区别;亦或在学习中使用较少,容易忘记,今天做一个回顾。 ls系列 -a:显示所有文件(包括隐藏文件) -l:将文件以竖列形式显示 -i:显示文件的inode编号 pwd 显…

Redis数据类型——String

Redis官网指令文档:Commands | Docs 前言 此处的String类型是针对Redis的Value的,因为Key的形式都是String,而Value则有哈性、列表、集合等形式。 众所周知,由于不同编码,经常会出现乱码的问题,但在Redi…

Umi.js:登录之后需要手动刷新权限菜单才能渲染

在使用Umi.js开发后台管理页面时,用户登录之后,总是需要手动刷新一次页面,才能够拿到全局状态/权限信息。 问题描述 结合使用umi/plugin-layout和umi/plugin-access,登录进入页面,配置的权限菜单未渲染,需…

Redis中的慢查询日志(一)

慢查询日志 概述 Redis的慢查询日志功能用于记录执行时间超过给定时长的命令请求,用户可以通过这个功能产生的日志来 监视和优化查询速度。服务器配置有两个和慢查询日志相关的选项: 1.slowlog-log-slower-than选项指定执行时间超过多少微妙(1秒1000 000微妙)的命…

一二三应用开发平台使用手册——系统管理-用户组-使用说明

概述 在RBAC模型中,资源、角色、用户三个关键元素,构成权限体系。在平台设计和实现的时候,以下几个核心问题思考如下: 角色,单层平铺还是树形结构? 在小型应用中,角色数量有限的情况下&#x…

VisionPro 脚本教程专栏:深入理解与实践

文章目录 VisionPro 脚本教程专栏:深入理解与实践。目录1. 脚本简介1.1 VisionPro 项目组成1.2 脚本的作用 2. 脚本类与方法2.1 ToolGroup 脚本类2.2 ToolBlock 脚本类2.3 Job 脚本类 3. 脚本使用案例3.1 Job脚本:自动调节曝光时间3.2 ToolBlock脚本&…

【Django】django.core.exceptions.AppRegistryNotReady: Apps aren‘t loaded yet.

其中django后台manage.py入口程序报错,检索很多问题解决方案,这里记录下个人问题原因 1.django启动异常问题详情 django.core.exceptions.AppRegistryNotReady: Apps aren’t loaded yet. 2.问题原因 Python第三方包安装版本不一致或缺少依赖包&…

江西智博环境| 邀您参加2024全国水科技大会暨技术装备成果展览会

展位号:A28 企业介绍 江西智博环境技术有限公司始创于2008年初,总部位于江西省域副中心城市-赣州。公司主要从事一体化净水设备、单村供站、泵船、无负压供水设备自动化控制系统、低配电系统、工艺设备及智慧水务的设计研发、生产、销售、安装、调试等业…