Python练习题,给定一个字符串,编写代码统计其中出现次数最多的字母(及次数)
时间: 2024-10-18 20:13:59 浏览: 31
在Python中,你可以通过字典数据结构来解决这个问题。首先遍历字符串,对于每个字符,如果它已经在字典中,就增加计数;如果没有,就添加到字典并设置计数为1。最后,从字典中找出最大计数值对应的键,即出现次数最多的字母。以下是相应的代码示例:
```python
def most_frequent_char(s):
char_count = {}
for char in s:
if char in char_count:
char_count[char] += 1
else:
char_count[char] = 1
# 找出最频繁的字符及其计数
max_freq = max(char_count, key=char_count.get)
return max_freq, char_count[max_freq]
# 测试函数
input_string = "hello world"
most_common, frequency = most_frequent_char(input_string)
print(f"出现次数最多的字母是'{most_common}',出现了{frequency}次。")
相关问题
练习题1:输入一个字符串,打印所有奇数位上的字符(下标是1,3,5,7…位上的字符) 练习题2:输入用户名,判断用户名是否合法(用户名长度6~10位),用户名只能由数字和字母构成,且必须是字母开头 练习题3:给定一个文件名,判断其尾部是否以".bmp"结尾 练习题4:给定一个字符串,如: mystr = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" 使用所学的知识,从字符串中随机取出4个字符,且验证码必须包含大写字母,小写字母和数字,生成验证码。
练习题1:
```python
s = input("请输入一个字符串:")
for i in range(1, len(s), 2):
print(s[i])
```
练习题2:
```python
import re
username = input("请输入用户名:")
if len(username) < 6 or len(username) > 10:
print("用户名长度不合法!")
elif not username[0].isalpha():
print("用户名必须以字母开头!")
elif not re.match("^[a-zA-Z0-9]+$", username):
print("用户名只能由数字和字母构成!")
else:
print("用户名合法!")
```
练习题3:
```python
filename = input("请输入文件名:")
if filename.endswith(".bmp"):
print("文件名合法!")
else:
print("文件名不合法!")
```
练习题4:
```python
import random
mystr = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
captcha = []
captcha.append(random.choice(mystr.lower())) # 随机选择一个小写字母
captcha.append(random.choice(mystr.upper())) # 随机选择一个大写字母
captcha.append(random.choice(mystr[52:])) # 随机选择一个数字
while len(captcha) < 4:
c = random.choice(mystr)
if c not in captcha:
captcha.append(c)
random.shuffle(captcha) # 打乱验证码字符的顺序
print("生成的验证码为:", ''.join(captcha))
```
其中,`mystr[52:]` 表示从第 53 个字符开始到字符串末尾的所有字符,即数字和大写字母。
描述 给定一个字符串,输出该字符串中的英文字母(包括大小写)、数字、空格、其他字符(每个中文字符算1个)的个数。 【考试组织者备注: python不作答该试题,练习时请跳过】 输入描述 输入任意字符串,字符串中可能包含英文字母、数字、空格和其他字符,以换行符(\n)结束。例如: 【字符串1】Have a nice day! :-) --来自Linda的祝福 【字符串2】Aa Bb 123 &* 输出描述 输出字符串中英文字母(包含大小写)、数字、空格、其他字符(每个中文字符算1个)的个数,以英文空格分隔。例如: 对【字符串1】,输出:17 0 5 11 对【字符串2】,输出:4 3 3 2。使用C语言实现
以下是使用 C 语言实现的代码,可以统计输入字符串中英文字母(包含大小写)、数字、空格、其他字符(每个中文字符算1个)的个数,并以英文空格分隔输出。
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char c;
int letter_count = 0, digit_count = 0, space_count = 0, other_count = 0, chinese_count = 0;
// 读入字符串,以换行符结束
while ((c = getchar()) != '\n') {
if (isalpha(c)) {
letter_count++;
} else if (isdigit(c)) {
digit_count++;
} else if (isspace(c)) {
space_count++;
} else if (c >= 0x4e00 && c <= 0x9fa5) {
chinese_count++;
} else {
other_count++;
}
}
// 输出统计结果
printf("%d %d %d %d\n", letter_count, digit_count, space_count, other_count + chinese_count);
return 0;
}
```
注意,上述代码只是一个简单的实现,可能存在性能问题和不足之处,需要根据实际情况进行优化。
阅读全文