Loading

习题练习:输入考试分数,自动得出考试等级

题目要求

这段代码运行后具备交互能力:从使用者的输入中获得分数,代码自动运算并打印该分数对应的等级。

分数为整数,最低为 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)
posted @ 2021-04-26 23:07  紫曜花  阅读(588)  评论(0编辑  收藏  举报