John车俊林 发表于 2019-10-10 20:09:48

求助,请帮忙

想问一下 零基础入门学习python中020讲中动动手的0中代码:
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)
第五行为什么要以'\n'为判断呢?这样的意义是什么呢   最后一行为什么要将元素加入列表里面呢,这样的话遇见相同元素了不就不能计数了吗?不是太懂这个程序

zltzlt 发表于 2019-10-10 20:11:38

1. 如果 each 为换行符 \n,打印 '\\n'(打印出来的效果变成了 \n),然后再打印它出现的次数。
2. https://fishc.com.cn/forum.php?mod=viewthread&tid=140833&highlight=python020%BD%B2

John车俊林 发表于 2019-10-10 20:37:18

zltzlt 发表于 2019-10-10 20:11
1. 如果 each 为换行符 \n,打印 '\\n'(打印出来的效果变成了 \n),然后再打印它出现的次数。
2. https: ...

想问为什么这时的each一定是换行符呀,因为我换成其它字符如@的话,程序就会无限循环这个字符及其统计次数。而若是换行符的话就会出正确结果。想问这是为什么

zltzlt 发表于 2019-10-10 20:38:33

John车俊林 发表于 2019-10-10 20:37
想问为什么这时的each一定是换行符呀,因为我换成其它字符如@的话,程序就会无限循环这个字符及其统计次 ...

不一定啊

John车俊林 发表于 2019-10-10 20:59:28

zltzlt 发表于 2019-10-10 20:38
不一定啊

哦哦 我知道啦 换成其它也是可以的 只不过打印不出\n,所以这里用的是\n。谢谢
页: [1]
查看完整版本: 求助,请帮忙