1. 程式人生 > >Python學習—列表練習

Python學習—列表練習

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. 【項目 - 排隊看病模擬】

 編寫一個程序,反映病人到醫院看病,排隊看醫生的情況。在病人排隊過程中,主要重復兩件事:

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學習—列表練習