编写接收数值成绩列表返回对应字母等级的函数及错误代码修复
问题原因
你写的列表推导式里的多分支判断语法不符合Python规范:Python的单行条件表达式语法为值1 if 条件 else 值2,多分支嵌套需要严格按照这个语法逐层衔接,不能直接写elif;同时原代码里D等级的边界判断写为i<69会漏掉刚好69分的情况。
修复后可运行代码
def letter_grade_list(grade): return [ "A" if i >= 90 else "B" if i >= 80 else "C" if i >= 70 else "D" if i >= 60 else "F" for i in grade ]
代码说明
- 省略了每个等级的上限判断,因为前面的条件已经过滤了更高分数的场景,代码更简洁也不会出现边界遗漏问题
- 严格遵循Python单行多分支条件的语法规则,用
else + 新if的结构模拟elif逻辑 - 调用示例:
print(letter_grade_list([95, 82, 76, 69, 59])) # 输出:['A', 'B', 'C', 'D', 'F']
内容的提问来源于stack exchange,提问作者DA111
相关产品推荐
相关产品推荐

