#第八題設定一個串列,建立5個部門員工姓名,'bob','anna','adam','julia','lydia'透過迴圈輸入員工成績,接下來依照成績排序輸出評核等級
成績 等級
90~100 A
80~89 B
70~79 C
60~69 D
60(不含)以下 E
拆解步驟來寫:
建立部門員工名單(串列)
用 for 迴圈輸入每位員工的成績,儲存在字典中
定義一個函式 get_grade(score) 來依據分數回傳評核等級
將員工依照成績排序
逐一輸出 員工姓名、分數、評核等級
Python
names={'bob':0,'anna':0,'adam':0,'julia':0,'lydia':0}
for name in names:
while True:
try:
score=int(input(f' 輸入{name}的成績 '))
if 0<= score <= 100:
names[name]=score
break
else:
print("請輸入成績0~100")
except:
print("請輸入整數")
else:
#輸入錯誤時會到這裡,然後再重新輸入
print("輸入下一位")
print(names)
def get_grade(score):
if score>=90:
return "A"
elif score>=80:
return "B"
elif score>=70:
return "C"
elif score>=60:
return "D"
else:
return "E"
# • item 是你 sorted() 處理的 每一個元素
# • item[1] 是你要用來「排序依據的值」
# • lambda 是匿名函式(像快速定義一個小函式)
#sorted(employees.items(), key=lambda item: item[1])
#排序字典 items() ➜ 依「值」排序(成績)
for name,score in sorted(names.items(),key=lambda item:item[1],reverse=True):
print(f'{name.capitalize():<6} 成績:{score:>3}分 等級:{get_grade(score)}' )