python 文件 成绩分析2

news2024/11/16 3:28:32

‘’’
文件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 data


def 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=0
	stu_score=0
	
	for 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.coloradmin.cn/o/1612391.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言—字符指针,指针数组和数组指针详解

字符指针 在指针的类型中我们知道有一种指针类型为字符指针 char* ; int main() {char ch w;char *pc &ch;*pc w;return 0; }还有一种使用方式如下: int main() {const char* pstr "hello world.";//这里是把一个字符串放到pstr指针变量里了吗…

WebSocket 快速入门 - springboo聊天功能

目录 一、概述 1、HTTP(超文本传输协议) 2、轮询和长轮询 3、WebSocket 二、WebSocket快速使用 1、基于Java注解实现WebSocket服务器端 2、JS前端测试 三、WebSocket进阶使用 1、如何获取当前用户信息 2、 后端聊天功能实现 一、概述 HTTP…

Linux安装Docker完整教程及配置阿里云镜像源

官网文档地址 安装方法 1、查看服务器内核版本 Docker要求CentOS系统的内核版本高于3.10 uname -r #通过 uname -r 命令查看你当前的内核版本2、首先卸载已安装的Docker(如果有) 2.1 确保yum包更新到最新 yum update2.2 清除原有的docker&#xff0c…

生物特征识别的六大技术研究

生物特征识别技术是结合了计算机科学与光学、声学、生物传感器以及生物统计学原理,通过利用人体固有的生理特征(如指纹、人脸、虹膜、掌纹、指静脉等)和行为特征(如笔迹、声音、步态等),来进行个人身份的鉴…

layui--table里使用switch

1. 项目需求 在layui.table上面渲染后的列表上面加一个switch开关,监听switch开关的动作,实现本列数据的状态切换! 实现效果如下: 2. 实现方式 下面介绍的思路都是利用table的templet模板实现的,不同的在于模板代码…

F-logic DataCube3 SQL注入漏洞复现(CVE-2024-31750)

0x01 产品简介 F-logic DataCube3是一款用于光伏发电系统的紧凑型终端测量系统。 0x02 漏洞概述 F-logic DataCube3 /admin/pr_monitor/getting_index_data.php 接口处存在SQL注入漏洞,未经身份验证的攻击者可通过该漏洞获取数据库敏感信息,深入利用可控制整个web服务器。 …

JavaEE 初阶篇-深入了解 File 文件操作(实现文件搜索、非空文件夹删除)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 File 文件概述 2.0 创建 File 类对象的方法 2.1 判断文件类型、获取文件信息的方法 2.2 创建文件、删除文件的方法 2.3 遍历文件夹的方法 3.0 文件搜索与删除 3.1…

虚拟机中的打印机,无法打印内容,打印的是白纸或英文和数字,打印不了中文

原因:打印机驱动设置不正确 解决方案: 打开打印机属性 -> 高级 -> 新驱动程序 下一页 -> Windows 更新 耐心等待,时间较长。 选择和打印机型号匹配的驱动,我选择的是: 虽然虚拟机和主机使用的驱动不…

《机器学习by周志华》学习笔记-线性模型-02

1、对数几率回归 1.1、背景 上一节我们考虑了线性模型的回归学习,但是想要做分类任务就需要用到上文中的广义线性模型。 当联系函数连续且充分光滑,考虑单调可微函数,令: 1.2、概念 找一个单调可谓函数,将分类任务的真实标记与线性回归模型的预测值联系起来,也叫做「…

关系型数据库的相关概念

表、记录、字段 表 一个实体集相当于一个表记录 一个实体相当于一个记录,在表中表表现为一行数据字段 一个字段相当于数据库表中的列 表的关联关系 一对一(一对一的表可以合并成一张表)一对多多对多 必须创建第三张表,该表通常称为联接表&#xff0c…

个人电脑信息安全注意事项

个人电脑信息安全注意事项 一、密码安全: 设置复杂且独特的密码,避免使用容易猜测或常见的密码。 定期更换密码,特别是在重要账户或应用上。 不要在多个账户上重复使用相同的密码。 使用密码管理工具来安全地存储和访问密码。 二、软件安…

Axure琐碎细节

文章目录 琐碎细节注释预览编写原型图的时候可以把颜色改为灰色标尺竖直文字左对齐Axure中的文字怎么添加元件层级问题如何找到各种各样的形状,比如三角形了 五角星了 十字架了给按钮设置简单的交互动作通过锁来等比例缩放 琐碎细节 注释 有时候我们需要给我们的元…

探索通过GPT和云平台搭建网安实战培训环境

项目背景 网络安全是一个不断演变的领域,面临着日益复杂的挑战和不断扩大的威胁。数字化时代,随着勒索攻击、数据窃取、网络钓鱼等频频出现,网络攻击的威胁指数和影响范围进一步增加,如何防范网络攻击,确保数据安全&a…

ssh免秘钥登录与时钟同步

ssh免秘钥登录及数据拷贝 ssh免秘钥登录及数据拷贝环境生成秘钥拷贝公钥到到远程服务器通过ssh-copy-id命令拷贝公钥到远程服务器通过手动拷贝公钥到远程服务器 非root用户远程拷贝公钥 设置编码方式临时设置编码永久设置方法一永久设置方法二 设置时钟同步使用 ntpdate 命令使…

yabai,openssh 竟然把 Windows 搞蓝屏了

在虚拟化技术日益普及的今天,Oracle VirtualBox 提供了一个功能强大的平台,允许用户在单一物理机上运行多个操作系统。 本文将指导你如何使用 Oracle VirtualBox 安装 Oracle Linux 9.3。 1. Oracle VirtualBox 7.0 介绍 Oracle VirtualBox 7.0 是一款由…

Compose 布局

文章目录 Compose 布局ColumnColumn属性使用 RowRow属性使用 BoxBox属性使用 ConstraintLayoutLazyColumnLazyColumn属性使用使用多类型使用粘性标题回到顶部 LazyRowLazyRow属性使用 LazyVerticalGridLazyVerticalGrid属性使用 Compose 布局 Column Compose中的”垂直线性布…

大型网站系统架构演化实例_4.数据库读写分离

1.数据库读写分离 网站在使用缓存后,使对大部分数据读操作访问都可以不通过数据库就能完成,但是仍有一部分操作(缓存访问不命中、缓存过期)和全部的写操作都需要访问数据库,在网站的用户达到一定规模后&#x…

制作一个RISC-V的操作系统十二-定时器中断

文章目录 CLINT定时器中断mtimemtimecmp机制总体框架流程时间节拍系统时钟代码 CLINT 产生软件中断和定时器中断 定时器中断 mtime 类似计数器,按照硬件对应的固定频率递增 上电后会自动复位为0,有硬件自动完成 mtimecmp 需要自己设置&#xff0…

C++相关概念和易错语法(8)(匿名对象、构造+拷贝构造优化、构造析构顺序)

1.匿名对象 当我们实例化对象后,有的对象可能只使用一次,之后就没用了。这个时候我们往往要主动去析构它,否则会占着浪费空间。但是如果遇到大量的这种情况,我们并不想每次都去创建对象、调用、析构,这样会写出很多重…

【Linux】对system V本地通信的内核级理解

一、system V版本的进程间通信技术 通过之前的学习,我们大致可以感受出来,共享内存,消息队列和信号量在使用的时候是有很多共性的。它们三个的接口,包括接口中传的参数有的都有很大的相似度。其实,共享内存&#xff…