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]内の成績データを正規表現でマッチングします.
コード:
#      
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("    ,    !")