1.对输入的成绩进行等级打分
题1:输入考试分数,自动得出考试等级
这段代码运行后具备交互能力:从使用者的输入中获得分数,代码自动运算并打印该分数对应的等级。
分数为整数,最低为 0,最高为 100。分数对应的等级为:
60 分及以下为 E
60 到 70 分(包含 70 分)为 D
70 到 80(包含 80 分)为 C
80 到 90(包含 90 分)为 B
90 分以上为 A
提示:
该需求分为三个部分:
从输入获取分数,使用input()方法。
分数对应的等级,实现方法有许多。其中 if 控制语句较适合新手。
运算得到分数对应的等级后,打印出来。
菜鸡版:
while True:
score = int(input('请输入你的分数, 范围是0~100'))
if score <= 60:
print(f'你的分数是{score},等级为E')
elif 60 < score <= 70:
print(f'你的分数是{score},等级为D')
elif 70 < score <= 80:
print(f'你的分数是{score},等级为C')
elif 80 < score <= 90:
print(f'你的分数是{score},等级为B')
else:
print(f'你的分数是{score},等级为A')
小小菜版:
def get_score():
"""
从输入获取分数并验证是否合法,直至得到一个合法的分数。
"""
flag = True
while flag:
score = input("输入分数,必须是 0 到 100 之间的整数\n>>>")
try:
score = int(score)
if score >= 0 and score <= 100:
flag = False
else:
print('分数超出范围,请重新输入')
except:
print('输入错误,请重新输入')
return score
def get_level(score):
"""根据分数判断得分等级"""
info = [
(91,100,"A"),
(81,90,"B"),
(71,80,"C"),
(61,70,"D"),
(0,60,"E"),
]
for i in info:
if i[0] <= score <= i[1]:
rlt = i[2]
break
print(f"分数 {score} 的评级是 {rlt}")
return rlt
def main():
score = get_score()
get_level(score)
if __name__ == '__main__':
main()
进阶版:
# 综合练习该题很棒
# 先整理出分数与等级的关系
levels = {
'A': [91, 100],
'B': [81, 90],
'C': [71, 80],
'D': [61, 70],
'E': [0, 60]}
# 接收分数输入
scores = input('请输入分数,最低0分,最高100分,多个分数空格隔开>>').split()
for level, limit in levels.items():
for score in scores:
if limit[0]<=int(score)<=limit[1]:
print(f'{score}分{level}级')