关于python的for循环
有一点关系for循环的小问题,今天看了第20讲的课后作业确实更加迷惑了代码:
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)
假设str1=%%!!,我现在最迷惑的就是这个for each in str1:,我想知道这个for循环是:
1.(一次性将str1的所有元素都找出来,然后一起进入下面的if)
2.(先找出%,然后进入if,完成后返回for,再找出第二个%再次进行if)
如果是2的话,第一次%进入list1后,返回for循环再使用第二个%,那么此时list1中不是已经有%了吗?那还怎么进行下面的if呢
如果是1的话,那么list1应该会包含所有的str1中元素啊
求大佬解惑,这个问题困扰了好久了 我刚才试了一下,好像有一点明白,应该是我理解的第二种,具体是如何实现后面的计数操作,我一直以为输出一个str中的元素,然后对其进行一次计数,后面发现理解错了,应该是输出一个str中的数,然后根据这个数在整个str中进行count(),所以不会重复添加元素
感觉突然豁然开朗了,害
蹲个大佬看看我理解的是不是对的{:5_109:} 辛荑啊 发表于 2020-10-21 20:55
我刚才试了一下,好像有一点明白,应该是我理解的第二种,具体是如何实现后面的计数操作,我一直以为输出一 ...
你忽略了最前面的前提条件
if each not in list1: 也就是只有遇到新的字符,才能进入判断并执行count(其实是一个更新统计结果的过程) 例如:
for i in :#运行过程可以理解为,第1次循环:1、i=0======第2次循环:1、i=1
print(i) #2、打印0======第2次循环:打印1
页:
[1]