文本字符分析。编写程序接收字符串,按字符出现的频率降序打印大写英文字母。 要求:结果只打印英文字母,其它标点符号等字符均不计数和输出。大小写算同一个字母。比如字符串中现A和a,计入到A的出现个数。 例如,输入“This is a test."时,输出“TSIHAE”。 提示:可以使用str.upper(),list.sort(),zip(*x), str.join()等方法
时间: 2023-06-20 09:05:44 浏览: 52
可以使用Python内置的Counter类来统计字符频率,然后按照字符出现频率进行排序,最后筛选出大写英文字母并打印即可。代码如下:
```python
from collections import Counter
s = input("请输入字符串:")
# 统计字符频率
counter = Counter(filter(str.isalpha, s.upper()))
# 按照字符出现频率进行排序
sorted_counter = sorted(counter.items(), key=lambda x: x[1], reverse=True)
# 筛选出大写英文字母并打印
result = ''.join([c[0] for c in sorted_counter if c[0].isupper()])
print(result)
```
运行结果:
```
请输入字符串:This is a test.
TSIHAE
```
相关问题
Python文本字符分析,编写程序接收字符串,按字符出现的频率降序打印大写英文字母
可以使用Python中的字典(dictionary)来实现字符频率的计算和排序。以下是代码示例:
```python
string = input("请输入要分析的字符串:")
# 创建一个字典来存储每个大写英文字母出现的频率
freq_dict = {}
for char in string:
if char.isupper():
if char in freq_dict:
freq_dict[char] += 1
else:
freq_dict[char] = 1
# 按字符频率降序排序
sorted_chars = sorted(freq_dict, key=freq_dict.get, reverse=True)
# 打印排序后的大写英文字母和频率
for char in sorted_chars:
print(char, freq_dict[char])
```
这个程序会先接收用户输入的字符串,然后遍历字符串中的每个字符,如果是大写英文字母,就在字典中增加该字母的频率。接着,使用`sorted`函数对字典进行排序,排序的依据是每个字母在字典中对应的频率。最后,打印排序后的大写英文字母和对应的频率。
用c语言编写一个程序 输入一个字符串 输出其中所出现过的大写英文字母
下面是一个示例程序,可以实现输入一个字符串,然后输出其中所有出现过的大写英文字母:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100];
int count[26] = {0};
int i, len;
printf("请输入一个字符串:\n");
fgets(str, 100, stdin); // 从标准输入读取字符串
len = strlen(str);
for (i = 0; i < len; i++) {
if (isupper(str[i])) { // 如果当前字符是大写字母
count[str[i] - 'A']++; // 统计出现次数
}
}
printf("出现过的大写英文字母有:\n");
for (i = 0; i < 26; i++) {
if (count[i] > 0) {
printf("%c ", 'A' + i); // 输出字母
}
}
return 0;
}
```
上述程序中,我们定义了一个字符数组 `str`,用来存储用户输入的字符串。然后我们定义了一个整型数组 `count[26]`,用来统计每个大写字母出现的次数。变量 `i` 用来循环遍历字符串中的每个字符,变量 `len` 是字符串的长度。
在循环中,我们首先使用 `isupper` 函数判断当前字符是否是大写字母。如果是,就通过 `count` 数组统计出现次数。
最后,我们再次循环输出出现过的大写英文字母。
注意,我们使用了 `fgets` 函数来从标准输入读取字符串,而不是 `scanf` 函数。这是因为 `fgets` 可以一次读取整行字符串,而 `scanf` 只能读取一个单词,容易导致输入不完整的问题。