鱼C论坛

 找回密码
 立即注册
查看: 2011|回复: 4

[已解决]关于python的for循环

[复制链接]
发表于 2020-10-21 20:42:44 | 显示全部楼层 |阅读模式

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

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

x
有一点关系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中元素啊
求大佬解惑,这个问题困扰了好久了
最佳答案
2020-10-21 22:28:19
例如:
for i in [0,1,2,3,4,5]:  #运行过程可以理解为,第1次循环:1、i=0======第2次循环:1、i=1
     print(i)                #2、打印0======第2次循环:打印1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-10-21 20:55:35 | 显示全部楼层
我刚才试了一下,好像有一点明白,应该是我理解的第二种,具体是如何实现后面的计数操作,我一直以为输出一个str中的元素,然后对其进行一次计数,后面发现理解错了,应该是输出一个str中的数,然后根据这个数在整个str中进行count(),所以不会重复添加元素
感觉突然豁然开朗了,害
蹲个大佬看看我理解的是不是对的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-21 21:01:53 | 显示全部楼层
辛荑啊 发表于 2020-10-21 20:55
我刚才试了一下,好像有一点明白,应该是我理解的第二种,具体是如何实现后面的计数操作,我一直以为输出一 ...

你忽略了最前面的前提条件
  1. if each not in list1:
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-21 21:03:17 | 显示全部楼层
也就是只有遇到新的字符,才能进入判断并执行count(其实是一个更新统计结果的过程)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-21 22:28:19 | 显示全部楼层    本楼为最佳答案   
例如:
for i in [0,1,2,3,4,5]:  #运行过程可以理解为,第1次循环:1、i=0======第2次循环:1、i=1
     print(i)                #2、打印0======第2次循环:打印1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-28 16:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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