资源简介
python学生成绩管理系统.rar
代码片段和文件信息
#项目名称:
#项目简介:
#作 者: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
相关资源
- LSSVM_python_example.zip
- L1制导求加速度算法部分.py
- [计算方法作业]利用python中matplotlib实
- [计算方法作业]利用python中matplotlib实
- 利用python中matplotlib库实现绘制(随机
- 全景图像拼接python+opencv
- 复旦大学人工智能N-Queens答案
- 100个经典Python
- python操作同花顺客户端下单程序
- opemv4-0v7725.rar
- FaceClustering.zip
- python 利用OpenCV 图像黑白化
- PythonTCP编程
- 《python常见图形代码可视化大全整理
- 代码大米计数PYTHON
- 在我的世界Minecraft 中用Python搭建剑球
- python图片爬取.rar
- 人工免疫算法python
- Python scrapy爬取豆瓣电影top250
- Python员工信息管理系统
- cohesive_COH2D4 for Quad.py
- 新浪微博爬虫代码+结果
- Python-RNNoiseRNN音频噪声抑制学习
- Python-Keras实现实时语义分割的深层神
- Python-通过百度语音API实现文本转语音
- Python-Binance虚拟货币交易机器人
- Python-2019年百度的三元组抽取比赛一个
- Python-微信公众号历史文章爬取api
- Python-手势识别使用在TensorFlow中卷积神
- Python-python识别字符验证码
评论
共有 条评论