月半三木 发表于 2021-6-26 14:28:59

课后作业

str1 = '''拷贝过来的字符串'''
list1 = []

for each in str1:
    if each not in list1:
      if each == '\n':
            print('\\n', str1.count(each))
      else:
            print(each, str1.count(each))
      list1.append(each)
这里的str.count()不应该只是count括号内字符的次数吗,那每次调用一个字符,不是每次打印的都是1吗,应该是
a1
a1
这种?,希望有人能解惑

Twilight6 发表于 2021-6-26 14:32:03



但是 count 的使用对象的原来拷贝过来的字符串 str1,被循环赋值的是 count 函数括号里的,也就是 each

即对拷贝字符串来判断 count() 循环到的字符个数,你把变量看反了

月半三木 发表于 2021-6-26 14:37:11

Twilight6 发表于 2021-6-26 14:32
但是 count 的使用对象的原来拷贝过来的字符串 str1,被循环赋值的是 count 函数括号里的,也就是 each ...

我是不是可以这样理解你的意思,每次循环,变换的是count()里的each,但是我想不通,为什么可以实现同一个字符出现次数的增加,而不是按我帖子里说的出现一次打印一次

Twilight6 发表于 2021-6-26 14:42:44

月半三木 发表于 2021-6-26 14:37
我是不是可以这样理解你的意思,每次循环,变换的是count()里的each,但是我想不通,为什么可以实现同 ...



for 循环 str1 的每一个字符,但是循环过的字符加入了 list1 列表,通过 if 判断下次循环就会跳过相同的字符

同一个字符只循环一次,你说的增加我没有理解什么意思

月半三木 发表于 2021-6-26 15:05:18

Twilight6 发表于 2021-6-26 14:42
for 循环 str1 的每一个字符,但是循环过的字符加入了 list1 列表,通过 if 判断下次循环就会跳过相 ...

好的,这一部分我懂了,我说的增加就是不清楚,重复出现的字符,怎样实现后面的数字增加,因为直接没有执行 not in下面的那个循环了

Daniel_Zhang 发表于 2021-6-26 15:11:51

月半三木 发表于 2021-6-26 15:05
好的,这一部分我懂了,我说的增加就是不清楚,重复出现的字符,怎样实现后面的数字增加,因为直接没有执 ...

能详细叙述一下你要实现什么功能吗,有点让人费解{:10_266:}

月半三木 发表于 2021-6-26 15:12:54

Daniel_Zhang 发表于 2021-6-26 15:11
能详细叙述一下你要实现什么功能吗,有点让人费解

就是读取字符串里面,每一个字符出现的次数

月半三木 发表于 2021-6-26 15:18:42

Daniel_Zhang 发表于 2021-6-26 15:11
能详细叙述一下你要实现什么功能吗,有点让人费解

回去翻了一下count方法, 已经理解了,看来我还是要好好锻炼一下自己的表述{:5_99:}

Daniel_Zhang 发表于 2021-6-26 15:21:35

月半三木 发表于 2021-6-26 15:18
回去翻了一下count方法, 已经理解了,看来我还是要好好锻炼一下自己的表述

{:10_250:}
页: [1]
查看完整版本: 课后作业