【python實戰(zhàn)】通過python代碼實現(xiàn)簡易評分系統(tǒng)(附代碼)(python評分程序)
目錄
- 一、實驗目的
- 二、操作環(huán)境
- 三、實驗內(nèi)容和過程
- 1.實驗內(nèi)容
- 2.代碼
- 2.1 用戶驗證功能
- 2.2 菜單函數(shù)
- 2.3 評分功能
- 四、結(jié)果分析
- 總體的輸出結(jié)果:
- 保存文件成功截圖:
- 五、小結(jié)
函數(shù)設計:一文學會python編程中的函數(shù)設計(實例講解)
一、實驗目的
1.鞏固和提高學生學過的基礎理論和專業(yè)知識;
2.提高學生運用所學專業(yè)知識進行獨立思考和綜合分析、解決實際問題的能力;
3.培養(yǎng)學生掌握正確的思維方法和利用計算機解決實際問題的基本技能;
4.增強學生對信息管理工作的認識,掌握信息處理方法,進行編制技術(shù)文件等基本技能的訓練,使之具有一定程度的實際工作能力。
5.使學生掌握文獻檢索、資料查詢的基本方法以及獲取新知識的能力。
6.促使學生學習和獲取新知識,掌握自我學習的能力。
二、操作環(huán)境
win11 、PyCharm Community Edition 2020.2.5 x64、 anaconda2019 、python3.7
三、、驗內(nèi)容和過程
1.實驗內(nèi)容
制作一個簡易評分系統(tǒng),要求完成以下功能:
1. 用戶驗證功能
(1)輸入用戶名及口令,然后在已有的用戶名及口令中檢查是否合法;
(2)如果用戶名及口令合法,進入查詢界面;
(3)如果用戶名及口令不合法,用戶名或口令最多可輸入3次,驗證錯誤超過3次以后,自動退出系統(tǒng)。
2. 評分功能
(1)在評委所打的分數(shù)中,去掉一個最高分,去掉一個最低分,得出個選手的平均分;
(2)按平均分進行排序,得出各選手的名次。
3. 菜單設計
(1)用戶能夠設置評委的人數(shù)并輸入姓名;
(2)用戶能夠設置選手的人數(shù);
(3)用戶能夠?qū)⒆詈蟮梅旨懊伪4娴轿募小?/p>
2.代碼
# _*_ coding:utf-8 _*#作者:碼銀# 用戶驗證功能def login(): print("歡迎來到簡易的評分·系統(tǒng),請先登錄呦~") username = input("請輸入用戶名:") password = input("請輸入口令:") if username == "admin" and password == "123456": print("登錄成功!") return True else: print("您還有三次機會呦~") for i in range(3): username = input("請重新輸入用戶名:") password = input("請重新輸入口令:") if username == "admin" and password == "123456": print("登錄成功!") return True print("登錄失敗,請重新啟動程序!") exit()def menu(): while True: print("~~~~~~~~~~~~~~~~") print("| 1.進入評分系統(tǒng) ") print("| 2.退出 ") print("~~~~~~~~~~~~~~~~") choice = input("n請輸入操作編號:") if choice == "1": pingfen() elif choice == "2": break else: print("登出,下次使用請重新運行本程序")def pingfen(): # 評分功能 num_judges = int(input("請輸入評委人數(shù):")) judge_names = [] for i in range(num_judges): judge_names.append(input("請輸入評委姓名:")) num_contestants = int(input("請輸入選手人數(shù):")) contestant_names = [] for i in range(num_contestants): contestant_names.append(input("請輸入選手姓名:")) scores = [] for judge in judge_names: score = [] for contestant in contestant_names: s = float(input(f"請輸入{contestant}的{judge}得分:")) score.append(s) scores.append(score) # 計算每個選手的最終得分和名次 final_scores = [] for i in range(num_contestants): total_score = sum(scores[j][i] for j in range(num_judges)) max_score = max(scores[j][i] for j in range(num_judges)) min_score = min(scores[j][i] for j in range(num_judges)) total_score -= max_score min_score final_scores.append(total_score / (num_judges - 2)) # 按平均分排序并輸出名次 contestant_final_scores = sorted(final_scores, reverse=True) print("各選手的最終得分及名次如下(已經(jīng)自動保存到文件中):") for i in range(num_contestants): print(f"{contestant_names[i]}: {final_scores[i]}, 名次: {i 1}") with open("scores.txt", "w") as f: for i in range(num_contestants): print(f"{contestant_names[i]}: {final_scores[i]}, 名次: {i 1}", file=f)login()menu()
2.1 用戶驗證功能
# 用戶驗證功能def login(): print("歡迎來到簡易的評分·系統(tǒng),請先登錄呦~") username = input("請輸入用戶名:") password = input("請輸入口令:") if username == "admin" and password == "123456": print("登錄成功!") return True else: print("您還有三次機會呦~") for i in range(3): username = input("請重新輸入用戶名:") password = input("請重新輸入口令:") if username == "admin" and password == "123456": print("登錄成功!") return True print("登錄失敗,請重新啟動程序!") exit()
在Python中,exit()函數(shù)用于退出程序,它接受一個可選的退出狀態(tài)代碼作為參數(shù)。默認情況下,如果不傳遞參數(shù),狀態(tài)代碼將被設置為0。調(diào)用這個函數(shù)將終止程序的執(zhí)行并返回到操作系統(tǒng)。
2.2 菜單函數(shù)
def menu(): while True: print("~~~~~~~~~~~~~~~~") print("| 1.進入評分系統(tǒng) ") print("| 2.退出 ") print("~~~~~~~~~~~~~~~~") choice = input("n請輸入操作編號:") if choice == "1": pingfen() elif choice == "2": break else: print("登出,下次使用請重新運行本程序")
使用while True:
通過這個語句可以達到:除非選擇“2.退出”break掉,其他選項都能在執(zhí)行完程序后,再次跳出菜單。
2.3 評分功能
def pingfen(): # 評分功能 num_judges = int(input("請輸入評委人數(shù):")) judge_names = [] for i in range(num_judges): judge_names.append(input("請輸入評委姓名:")) num_contestants = int(input("請輸入選手人數(shù):")) contestant_names = [] for i in range(num_contestants): contestant_names.append(input("請輸入選手姓名:")) scores = [] for judge in judge_names: score = [] for contestant in contestant_names: s = float(input(f"請輸入{contestant}的{judge}得分:")) score.append(s) scores.append(score) # 計算每個選手的最終得分和名次 final_scores = [] for i in range(num_contestants): total_score = sum(scores[j][i] for j in range(num_judges)) max_score = max(scores[j][i] for j in range(num_judges)) min_score = min(scores[j][i] for j in range(num_judges)) total_score -= max_score min_score final_scores.append(total_score / (num_judges - 2)) # 按平均分排序并輸出名次 contestant_final_scores = sorted(final_scores, reverse=True) print("各選手的最終得分及名次如下(已經(jīng)自動保存到文件中):") for i in range(num_contestants): print(f"{contestant_names[i]}: {final_scores[i]}, 名次: {i 1}") with open("scores.txt", "w") as f: for i in range(num_contestants): print(f"{contestant_names[i]}: {final_scores[i]}, 名次: {i 1}", file=f)
四、結(jié)果分析
總體的輸出結(jié)果:
保存文件成功截圖:
五、小結(jié)
這是一個簡單的評分系統(tǒng),包括用戶登錄、菜單選擇和評分功能。用戶在登錄時需要輸入用戶名和口令,如果輸入正確,則可以進入評分系統(tǒng)。在評分系統(tǒng)中,用戶可以選擇進入評分功能,然后輸入評委人數(shù)和選手人數(shù),分別輸入評委姓名和選手姓名,以及他們的得分。系統(tǒng)會自動計算每個選手的最終得分和名次,并按平均分從高到低排序輸出。最后,用戶的評分結(jié)果會被保存到一個文件中。