Python學習—列表練習
阿新 • • 發佈:2018-08-14
term ado tar str images 12c 評委打分 score else 1.【項目:大獎賽計分】
在歌星大獎賽中,有10個評委為參賽的選手打分,分數為1~100分。選手最後得分為:去掉一個最高分和一個最低分後其余8個分數的平均值。請編寫一個程序實現。
【項目擴展1(選做)】大獎賽編的計分程序,成績在0-10之間,輸入錯誤時要能馬上重新輸入,選手最後得分為:去掉一個最高分和一個最低分。評委人數(圖中為7)需要在在程序開始運行時輸入(這比固定10個評委的程序更有適應性了)。
【項目擴展2(選做)】在擴展1基礎上,輸出當前選手的最後得分後,提示“按任意鍵計算下一位選手的成績,退出請選擇N:”如果輸入的不是N或n,可以為下一位選手計算成績。運行結果如圖所示。
代碼:
score = [0,0,0,0,0,0,0,0,0,0] print("請輸入10位評委對選手的打分(0~100分):") for i in range(0,10): score[i] = int(input("請輸入第%d位評委的打分:" %(i+1))) while score[i] < 0 or score[i] > 100: score[i] = int(input("打分錯誤,請重新打分:" %(i+1))) score.sort() print("去掉一個最高分%d分,去掉一個最低分%d分,最終得分:%.2f" %(score[9],score[0],(sum(score)-score[0]-score[9])/8))
運行結果:
【項目擴展1(代碼)】
scores = [] count = int(input("清確認評委人數:")) print("請輸入%d位評委對選手的打分(0~10分):" %count) for i in range(count): score = float(input("第%d位評委打分:" %(i+1))) while score < 0 or score >10: score = float(input("打分錯誤,請重新打分(0~10分):")) scores.append(score) scores.sort() print("去掉一個最高分%.2f分,去掉一個最低分%.2f分,最終得分:%.2f" %(scores[count-1],scores[0],(sum(scores)-scores[0]-scores[count-1])/(count-2)))
運行結果:
【項目擴展2(代碼)】
scores = [] flag = ‘‘ count = int(input("請確認評委人數:")) print("請輸入%d位評委對選手的打分(0~10分):" %count) while flag != ‘n‘ and flag != ‘N‘: for i in range(count): score = float(input("第%d位評委打分:" %(i+1))) while score < 0 or score >10: score = float(input("打分錯誤,請重新打分(0~10分):")) scores.append(score) scores.sort() print("去掉一個最高分%.2f分,去掉一個最低分%.2f分,最終得分:%.2f" %(scores[count-1],scores[0],(sum(scores)-scores[0]-scores[count-1])/(count-2))) scores.clear() flag = input("按任意鍵計算下一位選手的成績,退出請選擇N或n:")
運行結果:
- 【項目 - 排隊看病模擬】
編寫一個程序,反映病人到醫院看病,排隊看醫生的情況。在病人排隊過程中,主要重復兩件事:
1)病人到達診室,將病歷本交給護士,排到等待隊列中候診。
2)護士從等待隊列中取出下一位病人的病歷,該病人進入診室就診。
求模擬病人等待就診這一過程。程序采用菜單方式,其選項及功能說明如下:
1)排隊——輸入排隊病人的病歷號,加入到病人排隊隊列中。
2)就診——病人排隊隊列中最前面的病人就診,並將其從隊列中刪除。
3)查看排隊——從隊首到隊尾列出所有的排隊病人的病歷號。
4)不再排隊,余下順序就診——從隊首到隊尾列出所有的排隊病人的病歷號,並退出運行。
5)下班——退出運行,提示未就診的病人明天再來。
代碼:
list = []
while True:
print("\n"+"西 開 國 際 醫 院".center(50,"*")+"\n")
print("1. 就診排隊".center(50," "))
print("2. 順序就診".center(50," "))
print("3. 查看排隊".center(50," "))
print("4. 不再排隊".center(50," "))
print("5. 醫生下班".center(50," "))
score = int(input("\n請選擇接下來你要做的操作:"))
if score == 1:
number=input("\n請輸入病人病歷號:")
list.insert(0,number)
print("排隊成功!\n")
elif score == 2:
if len(list) == 0:
print("\n沒有病人在排隊就診了!\n")
else:
print("\n病歷號為%s的病人開始就診。\n" %list.pop())
elif score == 3:
if len(list) == 0:
print("\n沒有病人在排隊就診了!\n")
else:
print("\n當前排隊病人:")
for i in list[::-1]:
print(i,end=‘ ‘)
print("\n")
elif score == 4:
if len(list) == 0:
print("\n沒有病人在排隊就診了!\n")
else:
print("\n所有在排隊的病人不再排隊:")
for i in list[::-1]:
print(i,end=‘ ‘)
list.clear()
print("\n")
exit()
elif score ==5:
if len(list) == 0:
print("\n沒有就診病人了,愉快下班!\n")
else:
print("\n醫生下班,請以下未就診的病人明日再來:")
for i in list[::-1]:
print(i,end=‘ ‘)
print("\n")
list.clear()
exit()
運行結果:
Python學習—列表練習