鱼C论坛

 找回密码
 立即注册
查看: 1596|回复: 7

[已解决]能请教一下大佬,这个代码的意思吗?

[复制链接]
发表于 2021-9-21 22:49:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
# 输入一个字符串,输出其中出现次数最多的字符及其出现的次数。要求使用字典
    str1 = input("请输入一个字符串:");
    d = dict();
    i = 0;
    while i < len(str1):
        if str1[i] in d:
            d[str1[i]] += 1;
        else:
            d[str1[i]] = 1;
        i += 1;

    v = max(d.values());
    print("请输出出现最多的字符:", end=" ");
    for key, value in d.items():
        if (value == v):
            print(key, end=" ");
    print();
    print("请输出出现最多字符的次数:", end=" ");
    print(v);
最佳答案
2021-9-22 00:30:35
本帖最后由 z5560636 于 2021-9-22 00:31 编辑

改了几处BUG 你自己可以参考一下:
# 输入一个字符串,输出其中出现次数最多的字符及其出现的次数。要求使用字典
# 获取键盘输入
str1 = input("请输入一个字符串:");
# 创建一个字典
d = dict();
# 设置一个临时变量用于判断是否遍历完字符串
i = 0;
# 开始遍历  循环控制变量:i  条件:是否超出输出长度
while i < len(str1):
    # 字符是否在字典中,如果在则加1
    # 此处记一个BUG 正确用法 str1[i]
    if str1[i] in d:
        # 此处记一个BUG 正确用法 str1[i]
        d[str1[i]] += 1;
    # 字符不在字典中,创建一个item  key:d[str1[i]]  value:1
    else:
        # 此处记一个BUG 正确用法 str1[i]
        d[str1[i]] = 1;
    # 循环变量递增
    i += 1;
# 索引赋值 取字典所有值的最大数
v = max(d.values());
print("输出出现最多的字符:", end=" ");
# 遍历 找出 value 和 索引相等,则输出key值
for key, value in d.items():
    if (value == v):
        print(key, end=" ");
print();
print("请输出出现最多字符的次数:", end=" ");
print(v);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-9-21 22:50:32 | 显示全部楼层
全部代码,我不是很懂它的意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-21 22:58:00 | 显示全部楼层
这个程序的结果是dict只有一个元素,key是输入的字符串,value是字符串的长度
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-22 00:30:35 | 显示全部楼层    本楼为最佳答案   
本帖最后由 z5560636 于 2021-9-22 00:31 编辑

改了几处BUG 你自己可以参考一下:
# 输入一个字符串,输出其中出现次数最多的字符及其出现的次数。要求使用字典
# 获取键盘输入
str1 = input("请输入一个字符串:");
# 创建一个字典
d = dict();
# 设置一个临时变量用于判断是否遍历完字符串
i = 0;
# 开始遍历  循环控制变量:i  条件:是否超出输出长度
while i < len(str1):
    # 字符是否在字典中,如果在则加1
    # 此处记一个BUG 正确用法 str1[i]
    if str1[i] in d:
        # 此处记一个BUG 正确用法 str1[i]
        d[str1[i]] += 1;
    # 字符不在字典中,创建一个item  key:d[str1[i]]  value:1
    else:
        # 此处记一个BUG 正确用法 str1[i]
        d[str1[i]] = 1;
    # 循环变量递增
    i += 1;
# 索引赋值 取字典所有值的最大数
v = max(d.values());
print("输出出现最多的字符:", end=" ");
# 遍历 找出 value 和 索引相等,则输出key值
for key, value in d.items():
    if (value == v):
        print(key, end=" ");
print();
print("请输出出现最多字符的次数:", end=" ");
print(v);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-22 10:45:42 | 显示全部楼层
z5560636 发表于 2021-9-22 00:30
改了几处BUG 你自己可以参考一下:

我想问一下这个end是什么 意思呢?
print("输出出现最多的字符:", end=" ");
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-22 10:46:52 | 显示全部楼层
z5560636 发表于 2021-9-22 00:30
改了几处BUG 你自己可以参考一下:

还有这一句我还是不是很明白
        for key, value in d.items():
            if (value == v):
                print(key, end = " ");
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-22 10:49:27 | 显示全部楼层
它不是打印了key,但运行结果里面没有key哎
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-22 11:03:57 | 显示全部楼层
pallas 发表于 2021-9-22 10:49
它不是打印了key,但运行结果里面没有key哎

字典遍历,返回的是两个变量  key, value
key value 组合成一个完整的键值对。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 07:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表