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