You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何将浮点型分数分级及字典推导式输出空值问题排查

错误原因汇总

  • 字典定义语法错误:student_records的赋值错误使用了冒号:,应改为等号=
  • 分级函数逻辑错误:
    • 函数参数是grade,但判断逻辑中误用了未定义的变量v
    • 边界值未覆盖:当前判断条件仅包含大于/小于,等于40.0、50.0、60.0、70.0的情况无匹配分支
    • 分级返回值符号错误:需求要求返回2:2、2:1,代码中写为2.2、2.1
  • 字典推导式过滤条件错误:if v == float是判断值是否等于float类,永远返回False,所有项都被过滤所以最终得到空字典,该冗余条件可直接删除,若要校验类型应改为isinstance(v, float)
  • 冗余变量:name和grade两个变量定义后没有使用,可以删除

修正后完整代码

# 修正字典定义语法
student_records = {'Ada': 98.0, 'Bill': 45.0, 'Charlie': 63.2, 'Teri': 35.0, 'Johanna': 52.5, 'Tomas': 37.8, 'Piotr': 65.0, 'Grzegorz': 64.8}

def grade_to_classification(grade):
    if grade < 40.0: 
        return "Fail"
    elif 40.0 <= grade < 50.0: 
        return "Pass"
    elif 50.0 <= grade < 60.0: 
        return "2:2"
    elif 60.0 <= grade < 70.0: 
        return "2:1"
    else: # 覆盖≥70.0的所有情况
        return "First"

# 删除错误的过滤条件
classified_student_records = {k:grade_to_classification(v) for k, v in student_records.items()}
print(classified_student_records)

运行输出

{'Ada': 'First', 'Bill': 'Pass', 'Charlie': '2:1', 'Teri': 'Fail', 'Johanna': '2:2', 'Tomas': 'Fail', 'Piotr': '2:1', 'Grzegorz': '2:1'}

内容的提问来源于stack exchange,提问作者Grace

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 13:09:05