题目要求
这段代码运行后具备交互能力:从使用者的输入中获得分数,代码自动运算并打印该分数对应的等级。
分数为整数,最低为 0,最高为 100。分数对应的等级为:
60 分及以下为 E 60 到 70 分(包含 70 分)为 D 70 到 80(包含 80 分)为 C 80 到 90(包含 90 分)为 B 90 分以上为 A
解法1:使用if语句
利用if语句根据分数的不同的取值范围,给定一个成绩等级,用一个元组存储成绩等级。
score = int(input('请输入分数(0-100):'))
grade = ('A', 'B', 'C', 'D', 'E')
# 判断分数对应的等级
if score <= 60:
my_grade = grade[4]
elif score <= 70:
my_grade = grade[3]
elif score <= 80:
my_grade = grade[2]
elif score <= 90:
my_grade = grade[1]
else:
my_grade = grade[0]
print('你的成绩等级是:', my_grade)
解法2:使用字典
一开始也想过使用字典来做,因为分数和等级正好是对应的,但是分数对应的是一个范围,想到这就卡住了,参考其他人写的程序,有一个比较巧妙的方法:
- 使用判断的边界作为字典的key,成绩等级作为value,
- 当从小到大排列时,判断的条件是
<=key
,并且条件成立时,跳出循环 - 当从大到小排列时,判断的条件是
>=key
,并且条件成立时,跳出循环
score = int(input('请输入你的分数(0-100):'))
grades = {60:'E', 70:'D', 80:'C', 90:'B', 100:'A'}
for key in grades:
if score <= key:
grade = grades.get(key)
break
print('你的成绩等级是:',grade)