Python練習問題——成績転換(百分制から五級制への転換)
2174 ワード
テーマ出所:Python言語プログラミング(中国大学MOOC)授業先生:嵩天、黄天羽、礼欣
タイトル説明:成績分数百分制から5級制への判定出力(異常処理try-except-else-finallyを推奨).具体的な要求は以下の通りである:1)1つの[0-100]内の成績データを入力し、対応する等級(A、B、C、D、E)を出力し、例えば入力が99で、第1行の出力は「入力成績がA級に属する」である.2)入力データが他の文字または範囲を超えた場合、「入力データに誤りがある!」3)成績等級がA、B、C、Dの場合、改行して「合格おめでとう!」4)finallyを用いて,どんなデータを入力しても,最後に「よく勉強し,毎日向上せよ!」と出力する.
考え方:整数と小数を含む[0-100]内の成績データを正規表現でマッチングします.
コード:
タイトル説明:成績分数百分制から5級制への判定出力(異常処理try-except-else-finallyを推奨).具体的な要求は以下の通りである:1)1つの[0-100]内の成績データを入力し、対応する等級(A、B、C、D、E)を出力し、例えば入力が99で、第1行の出力は「入力成績がA級に属する」である.2)入力データが他の文字または範囲を超えた場合、「入力データに誤りがある!」3)成績等級がA、B、C、Dの場合、改行して「合格おめでとう!」4)finallyを用いて,どんなデータを入力しても,最後に「よく勉強し,毎日向上せよ!」と出力する.
考え方:整数と小数を含む[0-100]内の成績データを正規表現でマッチングします.
コード:
#
import re
orgnScore = input()
pat = re.compile(r'^(0|100|[1-9]\d.?\d*)$')
try:
if pat.match(orgnScore):
score = eval(orgnScore)
if 0 <= score < 60:
print(" E 。")
elif score < 70:
print(" D 。")
print(" !")
elif score < 80:
print(" C 。")
print(" !")
elif score < 90:
print(" B 。")
print(" !")
else:
print(" A 。")
print(" !")
else:
print(" !")
except Exception as e:
print(e.message)
finally:
print(" , !")