continue的用法不懂
小甲鱼老师这个我看了好多遍就是弄不懂>>> for i in range(10):
if i%2 != 0:
print(i)
continue
i += 2
print(i)
2
1
4
3
6
5
8
7
10
9
为什么会输出这些数字?求大神的详细解答,谢谢! continue的作用就是结束当前循环,开始第二轮循环 假如这里有一段代码:
>>> for i in range(10):
if i % 2:
continue
print(i)
0
2
4
6
8
可以发现,continue就是一个过滤器,把我们不想要的过滤掉 continue就是结束本次循环,开始下一次循环。其作用就是跳过循环中continue以下的部分代码,直接开始下一次循环
在这个例程中,continue就是不再执行下面的两个语句
这个例程的作用就是,若i是奇数就直接输出,若i是偶数,就先对i+2,再输出 模拟一下:
第一轮循环:i = 0, i % 2 = 0 ( == 0) ,i= i + 2, 打印 i , 继续第二轮
第二轮循环 : i = 1, i % 2 = 1 ( != 0), 打印 i ,继续第三轮循环
然后就一直是这两种状态,直到循环结束 简单理解为,continue中断当次循环,也就是下面的不执行了,直接从头进行下次循环。
break则是中断所有循环,退出while。
看着道题:
if i%2 != 0的话,也就是说i为奇数的时候,只是打印出来,然后开始下一次循环。
而i为偶数的时候,由于不满足if条件,所以不执行if,执行i自增2.
所以有了下面。
当从0开始的时候,0为偶数(或者说不满足if条件),自增2(0+2),结果为2,打印,执行下次循环。
当从1开始的时候,1为技术(满足if条件),打印1,continue直接下次循环。
当从2开始的时候,2为偶数(或者说不满足if条件),自增2(2+2),结果为4,打印,执行下次循环。
……后面依次。 qiuyouzhi 发表于 2020-4-28 10:02
假如这里有一段代码:
可以发现,continue就是一个过滤器,把我们不想要的过滤掉
谢谢,但我觉得四楼的比较好理解,抱歉,没能给你最佳答案 当i 对2进行求余后不等于0就会打印i,且执行continue,而continue会跳出当前循环然后继续运行;
所以当程序开始i从0开始取值,不满足i%2!=0,所以不执行if的语句,直接执行i += 2,所以第一个输出的是2,然后i取值为1,满足1%2!=0,所以会执行if的语句打印i,所以第二个是1,然后执行continue,跳出该循环,所以不会执行i += 2这一条一条语句,然后现在i取值为2,以此类推。 _2_ 发表于 2020-4-28 10:12
模拟一下:
第一轮循环:i = 0, i % 2 = 0 ( == 0) ,i= i + 2, 打印 i , 继续第二轮
第二轮循环 : i =...
他这个第一轮循环 i=0i%2 ==0 不应该直接打印了 再 continue 然后 i = i +2 么 qiuyouzhi 发表于 2020-4-28 10:02
假如这里有一段代码:
可以发现,continue就是一个过滤器,把我们不想要的过滤掉
大神,我请教下,您代码的第二行
if i % 2:
这个后面不需要加上 !=0吗
初学者,感谢不吝赐教~ weiyideid823 发表于 2020-7-9 21:24
大神,我请教下,您代码的第二行
if i % 2:
这个后面不需要加上 !=0吗
不需要,因为i % 2的结果要么是0(False),要么是1(True) qiuyouzhi 发表于 2020-7-9 21:48
不需要,因为i % 2的结果要么是0(False),要么是1(True)
但是我试了下您这个程序,输出的好像是!=0的结果,是有什么默认的说法吗?
不好意思,再次请教下 weiyideid823 发表于 2020-7-9 21:54
但是我试了下您这个程序,输出的好像是!=0的结果,是有什么默认的说法吗?
不好意思,再次请教下
0是False,不为0的都是True。 qiuyouzhi 发表于 2020-7-9 21:59
0是False,不为0的都是True。
哦哦,明白了,感谢!{:5_108:}
页:
[1]