iT邦幫忙

2024 iThome 鐵人賽

DAY 29
0
Python

30天Python學習之旅系列 第 29

Day 29 : 簡單實作 ( 成績計算曲線 )

  • 分享至 

  • xImage
  •  

今天是Python學習的倒數第二天,實作主題是成績計算曲線,這個程式的目的在於讀取學生的成績檔案,根據特定的計分規則來計算每位學生的總成績,最後將結果寫入輸出檔案。這個過程會涉及到CSV檔案的讀取與寫入,並應用一些簡單的數據處理和統計分析。

專案流程統整

  1. 讀取學生成績檔案
    開啟並讀取存有學生成績的 CSV 檔案。每筆資料包含學生的名字、三次作業成績、期中考成績和期末考成績。

  2. 計算總成績
    根據題目規則,計算每位學生的總成績:
    作業部分取三次中最高的兩次,並且作業佔總成績的 50%。
    期中考佔總成績的 20%,期末考佔總成績的 30%。

  3. 輸出成績
    根據計算出的總成績,將每位學生的結果寫入另一個 CSV 輸出檔案,增加一列「總成績」。

計分規則

作業分數計算:選擇三次作業成績中的最高兩次,並將這兩次成績的平均值乘以 50%。
期中考成績:佔總成績的 20%。
期末考成績:佔總成績的 30%。

實作細節與步驟

第一步驟:讀取輸入檔案

使用 Python 的 csv 模組來讀取 CSV 檔案。
每行資料代表一位學生,包括三次作業、期中、期末的成績。

第二步驟:計算每位學生的總成績

對每個學生:

  1. 取出三次作業成績,選擇其中最高的兩次,並計算這兩次的平均值。
  2. 使用比例來計算總成績:作業成績的平均佔 50%、期中佔 20%、期末佔 30%。

第三步驟:將結果寫入輸出檔案

將每位學生的姓名和計算出的總成績寫回 CSV 檔案,讓檔案包含原始的分數和額外的總成績列。

程式碼範例

https://ithelp.ithome.com.tw/upload/images/20241012/20169078VtUFeqLsVy.png
https://ithelp.ithome.com.tw/upload/images/20241012/201690788oLB9czOCV.png

結果說明:

  1. 每個學生的名字、三次作業成績、期中考成績、期末考成績會被讀取。
  2. 根據規則計算每個學生的總成績。
  3. 最後將結果寫入新的 CSV 檔案,並且在原有的資料後面新增「總成績」一列。

輸出檔案示例:

姓名, 作業1, 作業2, 作業3, 期中考, 期末考, 總成績
王小明, 85, 78, 92, 88, 90, 89.0
李大華, 76, 85, 80, 79, 85, 81.3
張麗華, 90, 91, 87, 92, 93, 91.6

這個專案展示了如何在處理學生成績的應用中使用 CSV 檔案,並透過簡單的數據分析來計算學生的總成績。我能藉由這個實作來練習 CSV 檔案的操作、列表的處理、排序和數據計算的基本技能。


上一篇
Day 28 : 簡單實作 ( 圓周率的蒙地卡羅模擬法 )
下一篇
Day 30 : 總結心得
系列文
30天Python學習之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言