题目:由用户输入若干个英文字母或单词,空格分隔。编写程序统计这些字母或单词的出现频率,按升序保存为:“字母(单词):出现的次数”,输出该结果。如果用户直接输入回车,提示“请输入数据!”;如果用户输入数据中包含非法数据,系统提示“请全部输入英文字母或单词!”
时间: 2024-02-23 10:57:49 浏览: 146
好的,我已经了解了你的要求。以下是 Python 的代码实现:
```python
import string
def count_words_frequency():
print("请输入若干个英文字母或单词,空格分隔:")
input_str = input().lower()
if not input_str:
print("请输入数据!")
return
for c in input_str:
if c not in string.ascii_lowercase and c != ' ':
print("请全部输入英文字母或单词!")
return
words = input_str.split()
word_dict = {}
for word in words:
if word in word_dict:
word_dict[word] += 1
else:
word_dict[word] = 1
sorted_word_dict = sorted(word_dict.items(), key=lambda x: x[0])
for item in sorted_word_dict:
print("{}:{}".format(item[0], item[1]))
count_words_frequency()
```
程序首先提示用户输入数据,然后检查输入是否合法,如果合法就统计单词出现次数,并按照字母序升序排列输出。如果输入为空,则提示用户重新输入数据;如果输入包含非法字符,则提示用户重新输入英文字母或单词。
阅读全文