完成主子函数实现单词本的单词统计,主函数:输入paper、升序还是降序,子函数实现统计汇总输出
时间: 2024-10-22 10:04:48 浏览: 27
在完成单词本的单词统计功能时,我们可以设计一个简单的程序结构,其中包含一个主函数(main function)和一个子函数(word_counter)。这个过程通常涉及用户输入文本数据(如一篇论文,即`paper`),以及选择排序顺序(升序或降序)。下面是一个基本的Python示例:
```python
def word_counter(text, order="asc"):
"""
子函数:统计给定文本中的单词并按指定顺序返回结果
参数:
text (str): 需要分析的文本内容
order (str): 可选参数,默认为"asc"(升序),表示按字母升序排序;其他值如"desc"(降序)
返回:
list: 包含单词及其出现次数的列表,按照order参数决定的顺序排列
"""
# 分割文本为单词列表
words = text.split()
# 统计每个单词出现的次数
word_freq = {word: words.count(word) for word in words}
# 根据order参数对字典按照值进行排序
if order == "asc":
sorted_word_freq = sorted(word_freq.items(), key=lambda x: x[0])
elif order == "desc":
sorted_word_freq = sorted(word_freq.items(), key=lambda x: x[1], reverse=True)
else:
raise ValueError("Invalid sorting order. Choose 'asc' or 'desc'.")
return sorted_word_freq
# 主函数
def main():
paper = input("请输入你要统计单词的论文内容:")
sort_order = input("你想按什么顺序显示单词频率(asc/desc)? ")
try:
result = word_counter(paper, sort_order)
print(f"按照{sort_order}排序后的单词频率:")
for word, freq in result:
print(f"{word}: {freq}")
except ValueError as e:
print(e)
if __name__ == "__main__":
main()
```
在这个例子中,用户通过`main()`函数输入文本和排序选项,然后调用`word_counter`子函数进行统计并打印结果。如果用户提供的排序选项无效,`word_counter`会抛出一个错误。
阅读全文