最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Python編寫一個(gè)自動(dòng)評(píng)分系統(tǒng)

 更新時(shí)間:2026年03月13日 09:29:19   作者:IT小本本  
這篇文章主要為大家詳細(xì)介紹了如何基于Python編寫一個(gè)自動(dòng)評(píng)分系統(tǒng),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

前言

前天朋友找我?guī)兔Α?/p>

他們單位要舉辦一個(gè)年初 演講比賽。

流程很常見:

  • 5 位評(píng)委打分
  • 去掉一個(gè)最高分
  • 去掉一個(gè)最低分
  • 計(jì)算平均分
  • 每組選出第一名

聽起來很簡(jiǎn)單。

但真正執(zhí)行的時(shí)候,事情就變了。

負(fù)責(zé)人給我看了他們的 Excel。

80 個(gè)選手 5 個(gè)評(píng)委 400 個(gè)評(píng)分?jǐn)?shù)據(jù)

他們的統(tǒng)計(jì)方式是:

  • Excel 錄入分?jǐn)?shù)
  • 手動(dòng)找最高分
  • 手動(dòng)找最低分
  • 寫公式算平均
  • 再按組排序
  • 找第一名

負(fù)責(zé)人說:“昨天統(tǒng)計(jì)成績(jī)統(tǒng)計(jì)到晚上 11 點(diǎn)。”

我看了一眼 Excel,說了一句話:

“這事 Python 10 秒就能做完。”

excel數(shù)據(jù)樣例:

一、比賽評(píng)分的經(jīng)典規(guī)則

很多比賽都會(huì)用這個(gè)規(guī)則:

去掉最高分 + 去掉最低分 + 求平均

舉個(gè)例子。

選手 張三 的評(píng)分:98 83 96 83 61

排序之后:61 83 83 96 98

去掉:

  • 最低分 61
  • 最高分 98

剩下:83 83 96

平均分:87.333

這就是最終成績(jī)。

二、如果用 Excel 手動(dòng)算

如果只有 10 個(gè)選手

問題不大。

但如果是:

  • 80 個(gè)選手
  • 5 個(gè)評(píng)委
  • 400 個(gè)分?jǐn)?shù)

你需要:

  • 刪除最高最低
  • 寫公式
  • 排序
  • 找每組第一名

不僅慢,而且 非常容易算錯(cuò)

這也是為什么很多比賽 統(tǒng)計(jì)成績(jī)要一兩個(gè)小時(shí)。

三、Python 解決方案

其實(shí)只需要 30 行 Python。

核心代碼:

import pandas as pd

df = pd.read_excel("20260310.xlsx")

score_cols = ["得分1","得分2","得分3","得分4","得分5"]

def calc_valid_score(row):
    scores = sorted(row[score_cols])
    valid_scores = scores[1:-1]
    return sum(valid_scores)/len(valid_scores)

df["最高有效分"] = df.apply(calc_valid_score,axis=1)

這行代碼:

scores[1:-1]

直接完成:

去最高分 + 去最低分

四、自動(dòng)選出每組第一名

Python 的 Pandas 有一個(gè)很強(qiáng)的功能:

groupby

配合:

idxmax

代碼:

result = df.loc[df.groupby("組別")["最高有效分"].idxmax(),
                ["姓名","組別","最高有效分"]]

結(jié)果:

整個(gè)計(jì)算過程:

不到 1 秒。

五、再升級(jí):自動(dòng)排名

只要再加兩行代碼:

df["組內(nèi)排名"] = df.groupby("組別")["最高有效分"].rank(ascending=False)
df["總排名"] = df["最高有效分"].rank(ascending=False)

自動(dòng)生成:

姓名組別得分1得分2得分3得分4得分5最高有效分組內(nèi)排名總排名
張三A組71727374817339
李四B組606485699672.66666667310
王麥子C組826675636769.33333333415
趙六D組936875839583.6666666714
馬七A組666768697068417.5
楊八B組766671936571412.5
候機(jī)C組87857161988125
吉士D組996369657168.33333333516
洪七公A組93949596979522
張三三1B組837775798979.6666666716
張三三2C組686764789571312.5
張三三3D組889872646775.6666666728
張三三4A組636465666765520
張三三5B組746265629367519
張三三6C組937986899389.3333333313
張三三7D組846368619271.66666667311
張三三8A組98991001009999.3333333311
張三三9B組786283907177.3333333327
張三三10C組746763629268517.5
張三三11D組668670746570414

所有成績(jī):

自動(dòng)計(jì)算。

六、一鍵生成成績(jī)單

再加一行代碼:

df.to_excel("比賽成績(jī)統(tǒng)計(jì).xlsx",index=False)

Python 會(huì)自動(dòng)生成:

完整成績(jī)表 + 排名表

評(píng)委只需要:

  • 填 Excel
  • 運(yùn)行腳本

成績(jī)就出來了。

七、現(xiàn)實(shí)中很多單位還在手算

其實(shí)很多地方:

比賽評(píng)分 考核評(píng)分 評(píng)委評(píng)分

仍然是:

Excel + 人工統(tǒng)計(jì)

但只要寫一個(gè) Python 腳本:

以后所有比賽都可以復(fù)用。

換一個(gè) Excel 文件就能重新計(jì)算。

八、全部實(shí)現(xiàn)源代碼

1、基礎(chǔ)版全部代碼:

import pandas as pd

# 1. 讀取 Excel
df = pd.read_excel("20260310.xlsx")

# 2. 計(jì)算最高有效分(去掉一個(gè)最大和最小)
score_cols = ["得分1", "得分2", "得分3", "得分4", "得分5"]

def calc_valid_score(row):
    scores = sorted(row[score_cols])
    valid_scores = scores[1:-1]  # 去掉最大和最小
    return sum(valid_scores) / len(valid_scores)

df["最高有效分"] = df.apply(calc_valid_score, axis=1)

# 3. 每個(gè)組取最高有效分
result = df.loc[df.groupby("組別")["最高有效分"].idxmax(), ["姓名", "組別", "最高有效分"]]

# 4. 保留三位小數(shù)
result["最高有效分"] = result["最高有效分"].round(3)

# 5. 輸出結(jié)果
print(result)

2、升級(jí)版全部代碼:

import pandas as pd

df = pd.read_excel("20260310.xlsx")

score_cols = ["得分1","得分2","得分3","得分4","得分5"]

def calc_valid_score(row):
    scores = sorted(row[score_cols])
    valid_scores = scores[1:-1]
    return sum(valid_scores)/len(valid_scores)

df["最高有效分"] = df.apply(calc_valid_score,axis=1)

df["組內(nèi)排名"] = df.groupby("組別")["最高有效分"].rank(ascending=False)
df["總排名"] = df["最高有效分"].rank(ascending=False)

df.to_excel("比賽成績(jī)統(tǒng)計(jì).xlsx",index=False)

print("成績(jī)統(tǒng)計(jì)完成")

最后

很多人學(xué) Python 的時(shí)候都會(huì)問:

“Python 能干嘛?”

其實(shí)答案很簡(jiǎn)單。

只要是:

  • 重復(fù)的
  • 機(jī)械的
  • 需要計(jì)算的

幾乎都可以:

自動(dòng)化。

當(dāng)你第一次寫出一個(gè)腳本,

替代 2 小時(shí)人工工作 的時(shí)候,

你就會(huì)真正理解一句話:編程最大的價(jià)值 不是寫代碼,而是 節(jié)省時(shí)間。

到此這篇關(guān)于基于Python編寫一個(gè)自動(dòng)評(píng)分系統(tǒng)的文章就介紹到這了,更多相關(guān)Python自動(dòng)評(píng)分系統(tǒng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python pandas生成時(shí)間列表

    python pandas生成時(shí)間列表

    這篇文章主要介紹了python pandas生成時(shí)間列表,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-06-06
  • Python中獲取對(duì)象信息的方法

    Python中獲取對(duì)象信息的方法

    這篇文章主要介紹了Python中獲取對(duì)象信息的方法,是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-04-04
  • Python高階函數(shù)、常用內(nèi)置函數(shù)用法實(shí)例分析

    Python高階函數(shù)、常用內(nèi)置函數(shù)用法實(shí)例分析

    這篇文章主要介紹了Python高階函數(shù)、常用內(nèi)置函數(shù)用法,結(jié)合實(shí)例形式分析了Python高階函數(shù)與常用內(nèi)置函數(shù)相關(guān)功能、原理、使用技巧與操作注意事項(xiàng),需要的朋友可以參考下
    2019-12-12
  • Python PyQt5模塊實(shí)現(xiàn)窗口GUI界面代碼實(shí)例

    Python PyQt5模塊實(shí)現(xiàn)窗口GUI界面代碼實(shí)例

    這篇文章主要介紹了Python PyQt5模塊實(shí)現(xiàn)窗口GUI界面代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Pandas之缺失數(shù)據(jù)的實(shí)現(xiàn)

    Pandas之缺失數(shù)據(jù)的實(shí)現(xiàn)

    這篇文章主要介紹了Pandas之缺失數(shù)據(jù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python實(shí)現(xiàn)將DOC文檔轉(zhuǎn)換為PDF的方法

    Python實(shí)現(xiàn)將DOC文檔轉(zhuǎn)換為PDF的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)將DOC文檔轉(zhuǎn)換為PDF的方法,涉及Python調(diào)用系統(tǒng)win32com組件實(shí)現(xiàn)文件格式轉(zhuǎn)換的相關(guān)技巧,需要的朋友可以參考下
    2015-07-07
  • 基于Python的文件類型和字符串詳解

    基于Python的文件類型和字符串詳解

    下面小編就為大家分享一篇基于Python的文件類型和字符串詳解,具有很的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • ubuntu20.04運(yùn)用startup application開機(jī)自啟動(dòng)python程序的腳本寫法

    ubuntu20.04運(yùn)用startup application開機(jī)自啟動(dòng)python程序的腳本寫法

    這篇文章主要介紹了ubuntu20.04運(yùn)用startup application開機(jī)自啟動(dòng)python程序的腳本寫法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-10-10
  • python實(shí)現(xiàn)添加圖片到word文檔中

    python實(shí)現(xiàn)添加圖片到word文檔中

    這篇文章主要介紹了python實(shí)現(xiàn)添加圖片到word文檔中方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Python創(chuàng)建模塊及模塊導(dǎo)入的方法

    Python創(chuàng)建模塊及模塊導(dǎo)入的方法

    這篇文章主要介紹了Python創(chuàng)建模塊及模塊導(dǎo)入的方法,實(shí)例分析了模塊的定義、導(dǎo)入及模塊屬性的使用技巧,并附帶說明了包的概念與用法,需要的朋友可以參考下
    2015-05-05

最新評(píng)論

鲁甸县| 宜春市| 通城县| 嘉祥县| 铜川市| 宁河县| 富阳市| 文山县| 金门县| 南昌市| 元阳县| 虞城县| 武宁县| 蓬安县| 观塘区| 贺州市| 三门县| 阳江市| 吉林市| 乌鲁木齐县| 措勤县| 蓬溪县| 思南县| 凤冈县| 施秉县| 资阳市| 年辖:市辖区| 沧源| 松溪县| 桦川县| 定兴县| 抚松县| 星座| 黔西| 金门县| 中阳县| 宁河县| 乐都县| 广灵县| 平利县| 思茅市|