IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 文件中的成绩统计分析----Python -> 正文阅读

[Python知识库]文件中的成绩统计分析----Python

文件中的成绩统计分析

描述

现在一个包含若干学生学习成绩的文件,每位同学有4 门课程的成绩,按要求完成以下任务。

文件中每行数据格式如下:

0121801101266,刘雯,92,73,72,64

0121801101077,张佳喜,81,97,61,98

0121801101531,佘玉龙,73,89,81,93

读取附件文件中的数据,对数据进行处理,计算每个同学 4 门课程成绩的平均成绩,将平均成绩置于课程成绩后一列,按照平均分升序排序后输出。???????????????????????????

?根据以下输入要求,输出相应的数据:???????????????????????????

1.输出平均分最高的同学名字与平均成绩,名字与分数间用一个空格分隔;

2.?????????????????????????输出平均分最低的同学名字与平均成绩,名字与分数间用一个空格分隔;

3.输出按平均分从低到高的排序数据,要求每个数据之间以空格间隔,每行结尾无空格。

4.??????????????????????????输入一个学生的名字,输出该名同学所在行的的全部数据,各数据项间用一个空格分隔,结尾无空格;???????????????????????????

5.如输入的姓名在文件中不存在,输出? '姓名不存在'

# 读取文件,将读取到的字符串,按逗号分割,形成一个新的列表并返回
def read(filename):
    with open(filename, 'r', encoding='utf-8') as fr:
        score_lst = []
        for line in fr:
            score_lst.append(line.strip().split(','))  # line.strip()去掉换行符,去掉换行符后变成了字符串
    return score_lst


# 计算平均数并添加到列表中,返回包含平均数的新列表
def score_add_avg(score_lst):
    score_avg_lst = []
    for x in score_lst:
        avg = sum(map(int, x[2:])) / len(x[2:])
        x.append(avg)
        score_avg_lst.append(x)  # 将加了平均成绩的0列表加到新的列表
    return score_avg_lst

# 将列表按照平均数的大小从低到高排序
def sort_score(sort_lst):
    sort_lst.sort(key=lambda x: x[6])
    return sort_lst


# 3.输出按平均分从低到高的排序数据,要求每个数据之间以空格间隔,每行结尾无空格。
def output_all(sort_lst):
    for score in sort_lst:
        print(*score)  # *号进行解包


# 4.输入一个学生的名字,输出该名同学所在行的的全部数据,各数据项间用一个空格分隔,结尾无空格;
def query_studeng(sort_lst, stu_name):
    for line in sort_lst:
        if stu_name in line:
            return line
    else:
        return None


score = read('6.5 score.txt')
score_with_avg = score_add_avg(score)
sorted_score = sort_score(score_with_avg)
print(sorted_score)
# 1.输出平均分最高的同学名字与平均成绩,名字与分数间用一个空格分隔;
print(sorted_score[-1][1], sorted_score[-1][6])
# 2.输出平均分最低的同学名字与平均成绩,名字与分数间用一个空格分隔;
print(sorted_score[0][1], sorted_score[0][6])
output_all(sorted_score)
student_name = input()
info = query_studeng(sorted_score, student_name)
if info:
    print(*info)
else:  # 5.如输入的姓名在文件中不存在,输出  '姓名不存在'
    print('姓名是不存在的')

?

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-12-25 11:04:55  更:2022-12-25 11:08:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/24 1:22:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码