期末测试——处理10名选手,12名评委打分成绩——2020.12.15

因为是开卷期末结题测试,所以核心代码,后期再补充

已补充

期末测试

    • 一丶试题题目
    • 二丶试题代码
    • 三丶运行结果
    • 四丶完整代码
            • ——山重水复疑无路,柳暗花明又一村——

一丶试题题目

(一)试题要求
1、完成以下程序的设计:某体操比赛共有10名运动员参加,12名评委将根据运动员表现进行评分(满分10分),请编写Python程序,解决下列问题:
1)每个运动员评分中去掉一个最高分和一个最低分,计算平均成绩,然后给出运动员排名;
2)尽量减少人为因素,组委会要求去掉第一个问题中打最高分或最低分次数排名前二的评委给每个运动员的评分,然后计算平均成绩后排名。
(二)测试数据,保存本地txt文件
8.9 9.3 7.9 9.0 8.8 6.5 8.4 6.6 8.2 9.1 9.2 8.8
9.0 7.8 8.7 8.9 9.0 7.6 8.1 6.5 9.6 7.7 6.9 7.5
5.8 7.4 5.3 7.3 9.1 7.9 6.7 6.8 7.8 8.0 7.6 8.1
9.0 7.9 8.3 9.2 7.8 9.2 6.4 6.9 5.8 7.7 8.2 9.0
9.0 8.6 6.9 7.5 5.8 8.6 7.4 6.8 8.4 7.8 9.2 6.7
7.5 9.7 8.9 9.6 7.8 6.5 7.1 8.0 6.6 8.0 8.5 8.9
8.7 7.9 8.8 9.2 7.6 9.1 6.8 9.0 7.8 9.4 8.3 9.2
8.9 7.8 8.7 8.6 8.5 7.4 6.5 9.4 7.7 8.9 6.9 8.4
7.8 8.5 7.6 6.6 8.7 7.8 9.5 7.8 9.9 7.3 8.9 7.7
8.9 7.9 8.8 9.0 7.9 9.2 8.7 8.7 8.9 7.9 8.7 7.7

二丶试题代码

# 项目名称:
# 项目简介:
# 作   者:key
# 开发时间:2020/12/15 19:28

"""
3. 从文件中取出12个裁判员为10个运动员大的分数,
2).尽量减少人为因素,组委会要求去掉第一个问题中打最高分或最低分次数排名前二的评委给每个运动员的评分,然后计算平均成绩后排名。
"""
from collections import Counter
import copy
import numpy as np

# 为了减少失误,这里采用全局变量
fpath = "C:/Users/Lenovo/Desktop/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:

def maxminJudge(maxmin):

def showMax(maxl):

def showMin(minl):

def questionOne():

def questionTwo(ll):

def showMeau():


def main():
    # 设置判定条件
    isgo = 'Y'
    while isgo == 'y' or isgo == 'Y':
        showMeau()
        print("您的选择是:", end=' ')
        choice = int(input())
        if choice == 1:
            questionOne()
            isgo = input('\nY返回菜单/N退出系统')
        elif choice == 2:
            questionTwo(maxminJudge(maxl+minl))
            isgo = input('\nY返回菜单/N退出系统')
        elif choice == 3:
            showMax(maxl)
            isgo = input('\nY返回菜单/N退出系统')
        elif choice == 4:
            showMin(minl)
            isgo = input('\nY返回菜单/N退出系统')
        else:
            isgo = 'N'


if __name__ == '__main__':
     main()

三丶运行结果

期末测试——处理10名选手,12名评委打分成绩——2020.12.15_第1张图片

期末测试——处理10名选手,12名评委打分成绩——2020.12.15_第2张图片

期末测试——处理10名选手,12名评委打分成绩——2020.12.15_第3张图片

期末测试——处理10名选手,12名评委打分成绩——2020.12.15_第4张图片

期末测试——处理10名选手,12名评委打分成绩——2020.12.15_第5张图片

四丶完整代码

链接

——山重水复疑无路,柳暗花明又一村——

你可能感兴趣的:(Python基础-学习随笔,python)