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

while循环计算平均词长结果不一致问题排查

问题分析与修复

你的代码存在以下关键错误:

  • 嵌套while循环逻辑混乱:内层while word != ""会导致输入流程错乱,重复调用input会直接跳过当前输入的单词,转而统计下一次输入的内容,造成数据丢失。
  • 初始统计逻辑错误:第一个输入的单词统计后,average被直接赋值为该单词的长度,而非所有已输入单词的平均值。
  • 过早使用round导致精度丢失:在累加单词长度时就调用round,会提前截断数值,影响最终平均值的准确性。
  • 空输入处理漏洞:若用户第一次输入直接按回车,count仍会被加1,后续计算会基于错误的计数得出结果。

修复后的代码

word_length_count = 0
count = 0

while True:
    word = input("Enter a word (press Enter to quit): ")
    if word == "":
        break
    # 仅统计非空的有效单词
    count += 1
    word_length_count += len(word)

# 处理未输入任何单词的情况,避免除以0错误
if count > 0:
    average = word_length_count / count
    print("The average length of the words entered is", round(average))
else:
    print("No words were entered.")

修复说明:

  • 简化循环逻辑:用while True构建无限循环,每次输入后直接判断是否为空,为空则退出循环,非空则统计数据,流程清晰无遗漏。
  • 修正统计规则:仅在输入有效单词时才累加计数和长度,避免空输入干扰统计结果。
  • 调整round使用时机:累加长度时保留原始数值,仅在最终计算平均值后再取整,保证计算精度。
  • 增加边界判断:当未输入任何单词时给出提示,避免出现除以0的运行错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 07:28:14