编写程序,统计用户的输入中,各单词出现的频率(只需考虑英文单词的情况),按字母顺序排序后,输出所识别的单词和单词出现的次数。 例如: 输入为: hello world and practice makes perfect and hello world again 输出为: again:1 and:2 hello:2 makes:1 perfect:1 practice:1 world:2
时间: 2024-03-14 13:43:02 浏览: 84
好的,这是一个比较常见的编程问题,我可以帮你解决。以下是 Python 代码示例:
```python
import re
# 获取用户输入
user_input = input("请输入一段英文文本:")
# 将文本中的单词提取出来,并且转换成小写
word_list = re.findall(r'\b\w+\b', user_input.lower())
# 统计单词出现的次数
word_count = {}
for word in word_list:
if word not in word_count:
word_count[word] = 1
else:
word_count[word] += 1
# 按字母顺序排序
sorted_words = sorted(word_count.items(), key=lambda x: x[0])
# 输出结果
for word, count in sorted_words:
print(f"{word}:{count}")
```
这个程序会将用户输入中的单词提取出来,并且转换成小写。然后,它会统计每个单词出现的次数,并且存储到一个字典中。最后,它会按字母顺序排序,并且输出每个单词和它出现的次数。
注意,这个程序并没有考虑单词的复数形式,比如将 "apple" 和 "apples" 视为不同的单词。如果需要考虑这种情况,可以使用 Python 的 `nltk` 库进行词干提取或者词形还原。
阅读全文