You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何编写Python程序读取不确定数量的分数并统计高于、等于及低于平均分的分数个数?

Python实现分数统计:计算平均值并分类计数

嘿,我来帮你搞定这个需求!咱们一步步实现这个Python程序,核心就是三个关键环节:收集不确定数量的分数、计算平均值、统计不同区间的分数数量。

第一步:收集分数数据

因为分数数量不确定,咱们可以让用户持续输入分数,直到输入特定信号(比如空回车或者输入q)来结束输入。同时得处理用户可能输入的非数字内容,避免程序直接报错。

第二步:计算平均值

拿到所有有效分数后,先判断有没有收集到分数(避免出现除以0的错误),然后用分数总和除以数量得到平均值。

第三步:分类统计

遍历所有分数,分别统计高于平均值等于平均值低于平均值的数量。

下面是完整的可运行代码,每一行都加了注释方便你理解:

def main():
    scores = []
    print("请输入分数,输入空内容或'q'结束输入:")
    
    while True:
        # 获取用户输入并去除首尾空格
        user_input = input().strip()
        # 判断是否触发结束输入的条件
        if user_input == '' or user_input.lower() == 'q':
            break
        # 尝试将输入转为浮点数,捕获非数字输入的异常
        try:
            score = float(user_input)
            scores.append(score)
        except ValueError:
            print("请输入有效的数字哦,重新输入吧!")
    
    # 处理没有输入任何分数的边界情况
    if not scores:
        print("你没有输入任何分数,程序结束。")
        return
    
    # 计算平均值,保留两位小数更直观
    average = sum(scores) / len(scores)
    print(f"\n所有分数的平均值为:{average:.2f}")
    
    # 初始化三个分类的计数器
    above_avg = 0
    equal_avg = 0
    below_avg = 0
    
    # 遍历分数完成统计
    for s in scores:
        if s > average:
            above_avg += 1
        elif s == average:
            equal_avg += 1
        else:
            below_avg += 1
    
    # 输出最终统计结果
    print(f"高于平均值的分数数量:{above_avg}")
    print(f"等于平均值的分数数量:{equal_avg}")
    print(f"低于平均值的分数数量:{below_avg}")

if __name__ == "__main__":
    main()

测试示例

比如你输入以下分数:

85
92
78
85
q

程序会输出:

所有分数的平均值为:85.00
高于平均值的分数数量:1
等于平均值的分数数量:2
低于平均值的分数数量:1

这个程序很灵活,不管你输入多少个分数都能处理,还能应对用户的无效输入,实用性拉满!

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

火山引擎 最新活动