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

如何将平均分传入grades函数避免报错?Python成绩分析器问题

解决Python成绩分析程序中函数调用的参数传递问题

你报错的核心原因是:调用grades(getAvg)时,传递的是函数对象getAvg本身,而不是getAvg执行后返回的平均分数值。grades函数需要的是一个数值参数,直接传函数对象会导致类型不匹配错误。

下面是修正后的完整代码示例,实现你需要的功能:

1. 定义计算平均分的getAvg函数

def getAvg():
    # 获取用户输入的成绩,按空格拆分并转换为浮点型列表
    score_str = input("请输入学生成绩,用空格分隔:")
    scores = [float(s) for s in score_str.split() if s.replace('.', '', 1).isdigit()]
    
    if not scores:
        print("未检测到有效成绩,默认平均分0")
        return 0.0
    
    return sum(scores) / len(scores)

2. 定义判断等级的grades函数

def grades(average):
    if average >= 90:
        return 'A'
    elif average >= 80:
        return 'B'
    elif average >= 70:
        return 'C'
    elif average >= 60:
        return 'D'
    else:
        return 'F'

3. 正确的调用方式

你需要先执行getAvg()得到平均分结果,再将这个结果传入grades函数:

# 先获取平均分
average_score = getAvg()
# 传入grades函数获取等级
grade = grades(average_score)
print(f"平均分:{average_score:.1f},对应等级:{grade}")

或者可以简化为链式调用:

print(f"对应等级:{grades(getAvg())}")

测试示例:输入78,程序会输出对应等级:C,符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 22:29:52