<分区>
我是 Python 的新手,想学习最优化的编码方式。我正在做将字母等级分配给数字等级的经典介绍问题;我已经了解链接一堆 elif
的简单方法,但是有没有更优化的方法?如果说我有更多的子等级,或者以后我需要更改每个字母等级的标准怎么办?有没有办法为一系列值创建类似于字典的东西?
这就是问题所在:
Write a function named letter_grade that takes an integer argument, which represents a mark of a student. Return ‘A’ if mark ≥ 90, ‘B’ if 80 ≤ mark < 90, ‘C’ if 70 ≤ mark < 80, ‘D’ if 60 ≤ mark < 70, and ‘E’ if mark < 60. Return None if it is not a valid mark. A valid mark ranges from 0 to 100.
所以我们学到的基本蛮力方法很简单:
def letter_grade(mark):
if mark >100:
grade = None
elif mark >=90:
grade = 'A'
elif mark >= 80:
grade = 'B'
elif mark >= 70:
grade = 'C'
elif mark >= 60:
grade = 'D'
elif mark >= 0:
grade = 'E'
else:
grade = None
return grade
但是现在假设我有更多的子等级,比如 A+、A、A- 等一直到 F。我不想为此将 20+ elif
链接在一起.我想知道是否有更短的方法来处理这个问题。