编写程序统计这些字母或单词的出现频率,按升序保存为:“字母(单词):出现的次数”,输出该结果。如果用户直接输入回车,提示“请输入数据!”;如果用户输入数据中包含非法数据,系统提示“请全部输入英文字母或单词!”
时间: 2023-12-26 08:04:33 浏览: 20
好的,根据您的要求,我给出以下 Python 代码实现:
```python
import string
# 定义一个函数,用于统计字符串中每个单词或字母的出现次数
def count_freq(text):
# 判断输入是否为空
if not text.strip():
print("请输入数据!")
return
# 判断输入是否全部为英文字母或单词
if not all(c.isalpha() or c.isspace() for c in text):
print("请全部输入英文字母或单词!")
return
# 将字符串转换为小写,方便统计
text = text.lower()
# 使用字典来存储每个单词或字母的出现次数
freq_dict = {}
# 将字符串中的标点符号去除,并将字符串按空格分隔成单词列表
words = text.translate(str.maketrans("", "", string.punctuation)).split()
# 遍历单词列表,统计每个单词的出现次数
for word in words:
freq_dict[word] = freq_dict.get(word, 0) + 1
# 将字典按照键值升序排序
sorted_dict = sorted(freq_dict.items(), key=lambda x: x[0])
# 输出结果
for item in sorted_dict:
print(f"{item[0]}:{item[1]}")
# 使用 input 函数获取用户输入的字符串
text = input("请输入若干个英文单词或字母,用空格分隔:")
# 调用 count_freq 函数进行统计
count_freq(text)
```
该程序中,我们首先定义了一个 `count_freq` 函数,用于统计输入字符串中每个单词或字母的出现次数。该函数中,我们首先判断输入字符串是否为空和是否全部为英文字母或单词,如果不满足要求,则分别输出提示信息并直接返回。然后,我们将输入字符串转换为小写,使用字典来存储每个单词或字母的出现次数,将字符串中的标点符号去除,并将字符串按空格分隔成单词列表。最后,我们遍历单词列表,统计每个单词的出现次数,将字典按照键值升序排序,然后输出结果。
在主程序中,我们使用 `input` 函数获取用户输入的字符串,然后调用 `count_freq` 函数进行统计。