背景介绍
本项目旨在实现一个小型文本处理程序,能够接收用户输入的英文句子,输出包含单词数、出现次数和最高频率的统计结果。该程序需独立运行,不依赖外部服务,且符合学习价值。通过读取输入文本,统计单词信息并输出结果,可帮助学习者掌握基本的文本处理和数据结构应用。
思路分析
- 输入处理:使用Python的
input()函数读取用户输入,注意输入的边界条件处理,例如输入可能包含多行或空行。 - 单词分割:将输入文本拆分为连续的单词,使用Python的
split()方法默认按任意空格分割。若输入中存在多个空格或换行,split函数会自动处理,确保单词正确统计。 - 统计方法:使用字典(
collections.defaultdict)统计每个单词的出现次数,方便后续处理。 - 输出结果:将统计结果以指定格式输出,包括单词数、出现次数和最高频率。
代码实现
from collections import defaultdict
def text_analysis(text):
# 分割输入文本为单词列表
words = text.split()
# 统计每个单词的出现次数
word_counts = defaultdict(int)
for word in words:
word_counts[word] += 1
# 提取统计结果
result = {
"words": len(words),
"count": word_counts
}
return result
def main():
# 读取输入
text = input("请输入英文句子:")
result = text_analysis(text)
# 输出结果
print(f"单词数:{result['words']}")
print(f"出现次数:{' '.join(result['count'].keys())} {'count': {result['count'].values()[0]}}")
if __name__ == "__main__":
main()
总结
本项目实现了对输入英文句子的单词统计功能,通过读取文本、拆分单词并统计出现次数,能够帮助学习者掌握文本处理的基础知识。程序设计遵循良好的代码结构,使用了collections.defaultdict来简化单词统计的实现,同时注意了输入处理边界条件。该程序能够在1-3天内完成,具备良好的可读性和可运行性。