1. 程式人生 > >python小練習:讀入一個考試得分,判斷這個分數是哪個等級,並輸出,考慮異常場景

python小練習:讀入一個考試得分,判斷這個分數是哪個等級,並輸出,考慮異常場景

讀入一個考試得分,判斷這個分數是哪個等級,並輸出。

等級:》=90 優 ,>=80且小於90 良,》=70 且小於80,中,》=60且<70及格 
《60 不及格

覆蓋場景:

考慮字元型別(str,float)

數字範圍(0-100)以外的

小數98.99等

程式碼:

#encoding=utf-8
while True:
    try:
        score = raw_input("input the score,'exit' to stop: >>:")
        #print type(score)
        #print isinstance(score,str)

        if "exit" in score:
            break
        else:
            score = float(score)
            print "score:",score
            if score >= 90 and score <=100:
                print u"優"
            elif score>=80 and score <90:
                print u"良"
            elif score >=70 and score <80:
                print u"中"
            elif score >= 60 and score <70:
                print u"及格"
            elif score >=0 and score <60:
                print u"不及格"
            else:
                print u"請重新輸入!"
    except Exception,e:
        print e
        print u"請重新輸入!"
        continue

 

結果:

D:\>python test.py
input the score,'exit' to stop: >>:90
score: 90.0

input the score,'exit' to stop: >>:100
score: 100.0

input the score,'exit' to stop: >>:89
score: 89.0

input the score,'exit' to stop: >>:78
score: 78.0

input the score,'exit' to stop: >>:67
score: 67.0
及格
input the score,'exit' to stop: >>:56
score: 56.0
不及格
input the score,'exit' to stop: >>:1
score: 1.0
不及格
input the score,'exit' to stop: >>:0
score: 0.0
不及格
input the score,'exit' to stop: >>:-2
score: -2.0
請重新輸入!
input the score,'exit' to stop: >>:9.3
score: 9.3
不及格
input the score,'exit' to stop: >>:8.88
score: 8.88
不及格
input the score,'exit' to stop: >>:90.89
score: 90.89

input the score,'exit' to stop: >>:101
score: 101.0
請重新輸入!
input the score,'exit' to stop: >>:200
score: 200.0
請重新輸入!
input the score,'exit' to stop: >>:stop
could not convert string to float: stop
請重新輸入!
input the score,'exit' to stop: >>:sdlfj
could not convert string to float: sdlfj
請重新輸入!
input the score,'exit' to stop: >>:*&%$
could not convert string to float: *&%$
請重新輸入!
input the score,'exit' to stop: >>:exit