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

Python评分平均值计算错误求助:仅用最后一个数值除以5

Python评分收集程序问题修复:平均值计算错误与输入验证逻辑问题

问题分析

  • 平均值计算错误:你当前用最后一次输入的rating除以5得到平均值,正确逻辑应该是用所有有效评分的总和total除以评分次数ASK_COUNT。
  • 输入验证顺序错误:现有代码先把输入的评分加到总和里,再验证合法性。如果用户输入错误值,后续修正的评分不会被加入总和,导致总和计算偏差。必须先验证输入有效,再将其加入总和。

修正后的代码

def main():
    ASK_COUNT = 5
    total = 0
    for _ in range(ASK_COUNT):
        # 先获取输入并验证合法性
        rating = float(input('Please enter the critics score between 0 and 10: '))
        while rating <= 0 or rating > 10.0:
            print('ERROR: Please enter a score between 0 and 10')
            rating = float(input('Enter a correct score: '))
        # 验证通过后再加入总和
        total += rating
    # 用总和除以次数计算正确平均值
    average_rating = total / ASK_COUNT
    print(average_rating)
    determine_stars(average_rating)


def determine_stars(average):
    if 9.0 <= average <= 10.0:
        print('9.0 - 10.0:        *****')
    elif 8.0 <= average <= 8.9:
        print('8.0 - 8.9:         ****')
    elif 7.0 <= average <= 7.9:
        print('7.0 – 7.9:         ***')
    elif 6.0 <= average <= 6.9:
        print('6.0 – 6.9:         **')
    elif 5.0 <= average <= 5.9:
        print('5.0 – 5.9:         *')
    else:
        print('Below 5.0          No stars')

main()

关键改动说明

  1. 调整输入验证顺序:先循环验证输入的评分是否在0-10区间内,确认有效后再将其加入total总和,彻底避免错误值混入计算。
  2. 修正平均值计算逻辑:将average_rating = rating / 5改为average_rating = total / ASK_COUNT,用所有有效评分的总和除以次数得到正确平均值。
  3. 简化条件判断写法:把average >= 9.0 and average <=10.0简化为9.0 <= average <= 10.0,符合Python语法习惯,代码更简洁易读。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:05:22