如何统计多行输入字符串的单词总量与平均值并排查实现代码问题
代码问题排查与修复
原代码存在的问题
- 首次输入的单词没有被统计:第一次调用input拿到输入内容后,仅做了split操作,没有将对应单词数计入总计数
- 循环内计数逻辑错误:每次新拿到一行输入后,遍历首次输入生成的wordlist,导致当前行的单词数被重复累加「首次输入单词个数」次,计数完全失真
- 存在多余的计数逻辑:
if count > 0: count +=1没有任何业务意义,会凭空增加无效计数 - 缺少输入行数统计:无法计算单次输入的平均单词量
修复后代码
count = 0 line_count = 0 while True: words = input("Enter a line of words, press Enter to stop: ") if words == "": break current_words = words.split() count += len(current_words) line_count += 1 print(f"There were {count} words") if line_count > 0: avg = round(count / line_count, 2) print(f"Average words per line: {avg}") else: print("No valid input received")
修复说明
- 把输入逻辑统一放到循环内,避免漏统计首行输入
- 每次拿到一行输入先判断是否为空,为空直接终止循环
- 仅对当前行的单词数做一次累加,同时统计有效输入行数
- 最后补充平均单词量的计算和输出逻辑
内容的提问来源于stack exchange,提问作者codefreak
相关产品推荐
相关产品推荐

