a2421480 发表于 2018-11-19 21:16:58

看代码

for i in range(10):
    if i%2 !=0:
      print(i)
      continue
i += 2
print(i)   为啥我打出来出来的是 1,3,5,7,9,11 ?

露转溪桥 发表于 2018-11-19 21:33:44

你最后 i += 2 想干嘛。?

灰色的天空 发表于 2018-11-19 21:48:12

所以?你想干啥来着

塔利班 发表于 2018-11-19 23:14:46

if奇数打印,所以1 3 5 7 9
因为最后i+=2又打印,所以有个11

heidern0612 发表于 2018-11-20 08:11:05

本帖最后由 heidern0612 于 2018-11-20 08:12 编辑

for i in range(10):
    if i%2 !=0:
      print(i)
      continue
i += 2
print(i)   

1、3、5、7、9能弄明白吧?因为2、4、6、8被if过滤掉了,没打印出来.

continue一直到for循环结束,i = 9.紧跟着 I = I+2,,自己又加了2,打印出来。


把最后两行去了就行了。

a2421480 发表于 2018-11-20 18:45:10

heidern0612 发表于 2018-11-20 08:11
1、3、5、7、9能弄明白吧?因为2、4、6、8被if过滤掉了,没打印出来.

continue一直到for循环结束 ...

意思是if 后面条件满足了 才能continue 下去吗

a2421480 发表于 2018-11-20 18:46:32

塔利班 发表于 2018-11-19 23:14
if奇数打印,所以1 3 5 7 9
因为最后i+=2又打印,所以有个11

为什么会被过滤了range(10 ) 应该有10个数的嘛   现在 只有6个数

heidern0612 发表于 2018-11-20 18:49:10

a2421480 发表于 2018-11-20 18:45
意思是if 后面条件满足了 才能continue 下去吗

continue本来是用来过滤的条件,跳出当前次数循环,继续后面循环的。但是你这个continue没什么用,起码去掉了并不影响你当前代码的运行。

塔利班 发表于 2018-11-20 18:53:16

a2421480 发表于 2018-11-20 18:46
为什么会被过滤了range(10 ) 应该有10个数的嘛   现在 只有6个数

if i%2 !=0:
if语句不了解吗,只有满足条件才执行语句块的内容
不懂得话好好看看书,百度下

heidern0612 发表于 2018-11-20 19:35:46

a2421480 发表于 2018-11-20 18:46
为什么会被过滤了range(10 ) 应该有10个数的嘛   现在 只有6个数

不是你自己定义的吗?如果i%2 !=0 就打印? 只有偶数除2才等于0,奇数除2不为零才打印的

a2421480 发表于 2018-11-20 20:29:25

heidern0612 发表于 2018-11-20 19:35
不是你自己定义的吗?如果i%2 !=0 就打印? 只有偶数除2才等于0,奇数除2不为零才打印的

意思是不是之前打印出来的 3 5 7 9都是 加上过2 的都是重复式的嘛

a2421480 发表于 2018-11-20 20:36:02

塔利班 发表于 2018-11-20 18:53
if i%2 !=0:
if语句不了解吗,只有满足条件才执行语句块的内容
不懂得话好好看看书,百度下

continue在这个代码中是满足市民条件才开始执行的呢

a2421480 发表于 2018-11-20 20:37:18

heidern0612 发表于 2018-11-20 08:11
1、3、5、7、9能弄明白吧?因为2、4、6、8被if过滤掉了,没打印出来.

continue一直到for循环结束 ...

意思就是for循环结束了 continue 才开始是吧

a2421480 发表于 2018-11-20 20:37:51

露转溪桥 发表于 2018-11-19 21:33
你最后 i += 2 想干嘛。?

证明 continue的存在

塔利班 发表于 2018-11-20 20:38:07

a2421480 发表于 2018-11-20 20:36
continue在这个代码中是满足市民条件才开始执行的呢

是啊,但是你这是循环最后的语句,结束当次循环,有无作用不大了

a2421480 发表于 2018-11-20 20:40:49

灰色的天空 发表于 2018-11-19 21:48
所以?你想干啥来着

我想知道怎么打印出来的 大哥

a2421480 发表于 2018-11-20 20:42:10

塔利班 发表于 2018-11-20 20:38
是啊,但是你这是循环最后的语句,结束当次循环,有无作用不大了

谢谢大佬{:5_91:}

heidern0612 发表于 2018-11-20 20:42:30

a2421480 发表于 2018-11-20 20:29
意思是不是之前打印出来的 3 5 7 9都是 加上过2 的都是重复式的嘛

跟加不加2有什么关系?。。

%应该明白吧?   是求余数操作符。

2%2、4%2、6%2、8%2的结果都是零。

同理,1、3、5、7、9的求余操作结果都是1。

你设置的if语句,要的就是0到9范围内求余不为零的数,然后print打印出来。,就这么简单。

如果还是不明白的话,就多看看小甲鱼老师的视频吧。

a2421480 发表于 2018-11-20 20:45:35

heidern0612 发表于 2018-11-20 20:42
跟加不加2有什么关系?。。

%应该明白吧?   是求余数操作符。


我是没明白continue 是要等for 循环结束才进行的

a2421480 发表于 2018-11-20 20:47:57

heidern0612 发表于 2018-11-20 20:42
跟加不加2有什么关系?。。

%应该明白吧?   是求余数操作符。


你前面讲的 后二行可以去掉是啥意思哦
页: [1]
查看完整版本: 看代码