pallas 发表于 2021-9-21 22:49:56

能请教一下大佬,这个代码的意思吗?

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

pallas 发表于 2021-9-21 22:50:32

全部代码,我不是很懂它的意思

冬雪雪冬 发表于 2021-9-21 22:58:00

这个程序的结果是dict只有一个元素,key是输入的字符串,value是字符串的长度

z5560636 发表于 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
    if str1 in d:
      # 此处记一个BUG 正确用法 str1
      d] += 1;
    # 字符不在字典中,创建一个itemkey:d]value:1
    else:
      # 此处记一个BUG 正确用法 str1
      d] = 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);

pallas 发表于 2021-9-22 10:45:42

z5560636 发表于 2021-9-22 00:30
改了几处BUG 你自己可以参考一下:

我想问一下这个end是什么 意思呢?
print("输出出现最多的字符:", end=" ");

pallas 发表于 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 = " ");

pallas 发表于 2021-9-22 10:49:27

它不是打印了key,但运行结果里面没有key哎

z5560636 发表于 2021-9-22 11:03:57

pallas 发表于 2021-9-22 10:49
它不是打印了key,但运行结果里面没有key哎

字典遍历,返回的是两个变量key, value
key value 组合成一个完整的键值对。
页: [1]
查看完整版本: 能请教一下大佬,这个代码的意思吗?