python 替代if else [关闭]

ehxuflar  于 2023-01-19  发布在  Python
关注(0)|答案(1)|浏览(107)

十小时前关门了。
Improve this question
我有一个大学作业,要写一个程序,接收用户输入的分数,并显示相对分数。例如,分数在90到100之间得A+,在80到90之间得A。
我不想使用多个if else语句,而且考虑到缩进,这看起来很可怕。
我想到使用字典,但我不确定字典是否可以接受多个值。

eimct9ow

eimct9ow1#

一个选项是迭代每个等级所需的分数序列,并返回第一个匹配项:

def relative_grade(marks: int) -> str:
    for req, grade in (
        (91, "A+"),
        (81, "A"),
    ):
        if marks >= req:
            return grade
    return "F"

如果分数在值之间均匀分布,则还可以使用数学方法对其进行“分组”,然后在字典中查找:

def relative_grade(marks: int) -> str:
    return {
        9: "A"+,
        8: "A",
    }.get((marks - 1) // 10, "F")

相关问题