资源简介
python学生成绩管理系统.rar
![](http://www.nz998.com/pic/72178.jpg)
代码片段和文件信息
#项目名称:
#项目简介:
#作 者:key
#开发时间:2020/12/15 19:28
“““
3. 从文件中取出12个裁判员为10个运动员大的分数,
2).尽量减少人为因素,组委会要求去掉第一个问题中打最高分或最低分次数排名前二的评委给每个运动员的评分,然后计算平均成绩后排名。
“““
from collections import Counter
import copy
import numpy as np
# 为了减少失误,这里采用全局变量
fpath = “dafen.txt“
# fpath = “C:/Users/Administrator/Desktop/dafen.txt“
judge = [x for x in range(1 13)]
maxl = [] # 储存打最高分的评委的次数
minl = [] # 存储打最低分的评委的次数
player = [] # 原始成绩数据
num = [‘一‘‘二‘‘三‘‘四‘‘五‘‘六‘‘七‘‘八‘‘九‘‘十‘]
# 设置样式
strx = ‘-----------------------------------------------------------------------------------------------‘
str1 = ‘------------------------------去掉最高分和最低分计算平均分-降序--------------------------------------‘
str2 = ‘------------------------------去掉打最高最低分次数最多的前2位评委-计算平均分-降序-----------------------‘
str3 = ‘------------------------------显示打最高分次数的评委-----------------------------------------------‘
str4 = ‘------------------------------显示打最低分次数的评委-----------------------------------------------‘
##### 这里之上均是使用全局变量
# 处理文本数据
with open(fpath ‘r‘) as f: # 处理文本数据,最后返回player,maxl,minl
countlines = 0 # 行数#这里的行数也代表了运动员的编号
for contents in f:
contents = contents.strip() # 返回的是一个str类
contents = contents.split(‘ ‘) # 返回一个list 按照空格分割
scorenum = len(contents) # 这里的list大小,也就代表了一共有多少个分数
contents = list(map(float contents)) # 转化为float类型
player.append(contents) # 存储运动员成绩
l1 = list(zip(judge contents)) # 裁判员编号和打分打包成元祖
l2 = list(list(items) for items in l1) # 转化为list
l2.sort(key=lambda x: x[1] reverse=True)
# 直接这样写
# maxl.append(l2[0][0]) # 统计最高分次数的评委
# minl.append(l2[11][0]) # 统计最低分次数的评委
# 会存在逻辑漏洞
# 比如:当第四位选手的时候
# [[4 9.2] [6 9.2] [1 9.0] [12 9.0] [3 8.3] [11 8.2] [2 7.9] [5 7.8] [10 7.7] [8 6.9]
# [7 6.4] [9 5.8]]
# 只会取到4号裁判,而忽略了6号裁判,所以要改用判定语句
for i in range(12):
if l2[i][1]!=l2[i+1][1]:
maxl.append(l2[i][0])
break
else:
maxl.append(l2[i][0])
continue
for i in range(11 0 -1):
if l2[i][1] != l2[i-1][1]:
minl.append(l2[i][0])
break
else:
minl.append(l2[i][0])
continue
# 处理最高最低分,返回最高分次数最多的2个评委 格式[[ab]]或[[a][b]]
def maxminJudge(maxmin):
ret = [] # 返回值
num_Count = dict(Counter(maxmin))
value_num = max((num_Count.values()))
print(str2)
for i in range(1 value_num + 1):
# filter的主要作用是通过function对iterable中的元素进行过滤,并返回一个迭代器(iterator)
# 下文的function就是我们自己写的匿名函数
# num_Count.get(k) == i 查看当前的k所对应的的value值是否是i
# filter的目的就是为了过滤掉不符合条件的值,符合条件的,返回迭代器
# 由于filter(lambda k: num_Count.get(k) == i num_Count.keys())返回的是迭代器,所以list转化
key_list = list(filter(lambda k: num_Count.get(k) == i num_Count.keys()))
print(“评委打出最高最低
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
.CA.... 488 2020-12-25 21:48 期末\dafen.txt
.CA.... 10238 2020-12-26 12:47 期末\期末.py
.C.D... 0 2020-12-26 12:48 期末
----------- --------- ---------- ----- ----
10726 3
相关资源
- 二级考试python试题12套(包括选择题和
- pywin32_python3.6_64位
- python+ selenium教程
- PycURL(Windows7/Win32)Python2.7安装包 P
- 英文原版-Scientific Computing with Python
- 7.图像风格迁移 基于深度学习 pyt
- 基于Python的学生管理系统
- A Byte of Python(简明Python教程)(第
- Python实例174946
- Python 人脸识别
- Python 人事管理系统
- 基于python-flask的个人博客系统
- 计算机视觉应用开发流程
- python 调用sftp断点续传文件
- python socket游戏
- 基于Python爬虫爬取天气预报信息
- python函数编程和讲解
- Python开发的个人博客
- 基于python的三层神经网络模型搭建
- python实现自动操作windows应用
- python人脸识别(opencv)
- python 绘图(方形、线条、圆形)
- python疫情卡UN管控
- python 连连看小游戏源码
- 基于PyQt5的视频播放器设计
- 一个简单的python爬虫
- csv文件行列转换python实现代码
- Python操作Mysql教程手册
- Python Machine Learning Case Studies
- python获取硬件信息
评论
共有 条评论