鱼C论坛

 找回密码
 立即注册
查看: 1541|回复: 10

[已解决]Python 第九課课堂习题 continue 用法 请教

[复制链接]
发表于 2018-1-9 18:12:20 | 显示全部楼层 |阅读模式

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

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

x
  1. for i in range(10):
  2.     if i%2 !=0:
  3.         print(i)
  4.         continue
  5.     i += 2
  6.     print(i)
复制代码


那位师兄师姐  能帮忙讲解一下 这个 程序的  运行过程  打印出来的 每一个结果是怎么来的  怎么+2 然后出来的  谢谢哈
最佳答案
2018-1-9 18:40:51
  1. for i in range(10):   #从0到10(不包含10)依次取出一个数赋值给i
  2.         if i%2 != 0:   #i为奇数
  3.                   print(i)  #打印i并换行
  4.                   continue  #跳过循环后面的部分
  5.          i += 2   #i自增2
  6.          print(i)  #打印i并换行
复制代码

这个的关键就在自增i后会不会影响从range(10)中取出的i
实际上,是不影响的,i自增2并打印后
i 依然是从range(10)中取出值
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-1-9 18:30:26 From FishC Mobile | 显示全部楼层
记住两点
1 continue结束本次循环,进入下次循环判断
2 循环体内修改 i 的值对每次循环用的i无任何影响,比如某次循环i==4,if判断失败执行i+=2后i变为6并打印,但是下次循环i为5
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-9 18:31:18 | 显示全部楼层
BngThea 发表于 2018-1-9 18:30
记住两点
1 continue结束本次循环,进入下次循环判断
2 循环体内修改 i 的值对每次循环用的i无任何影响, ...

我想咨询 这个小程序的运算过程 谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-9 18:36:41 | 显示全部楼层
for i in range(10):
    if i%2 !=0: #取余数,若不为0,也就是奇数则
        print(i) #打印该奇数
        continue #直接取下一个数了,下面不执行,即奇数不+2
    i += 2 #全部偶数+2
    print(i)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-9 18:40:51 | 显示全部楼层    本楼为最佳答案   
  1. for i in range(10):   #从0到10(不包含10)依次取出一个数赋值给i
  2.         if i%2 != 0:   #i为奇数
  3.                   print(i)  #打印i并换行
  4.                   continue  #跳过循环后面的部分
  5.          i += 2   #i自增2
  6.          print(i)  #打印i并换行
复制代码

这个的关键就在自增i后会不会影响从range(10)中取出的i
实际上,是不影响的,i自增2并打印后
i 依然是从range(10)中取出值
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-9 18:46:39 | 显示全部楼层
  1. #python3版本
  2. j = 0
  3. for i in range(10):
  4.     print('I ===',i)
  5.     if i%2 !=0:
  6.         print("跳出本次循环",i)
  7.         #跳出本次循环,执行下一次循环
  8.         continue

  9.     j = i+2
  10.     print("j==",j)

  11. 输出结果:
  12. I === 0
  13. j== 2
  14. I === 1
  15. 跳出本次循环 1
  16. I === 2
  17. j== 4
  18. I === 3
  19. 跳出本次循环 3
  20. I === 4
  21. j== 6
  22. I === 5
  23. 跳出本次循环 5
  24. I === 6
  25. j== 8
  26. I === 7
  27. 跳出本次循环 7
  28. I === 8
  29. j== 10
复制代码


希望能帮助到你
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-9 19:20:38 | 显示全部楼层
Tony_C 发表于 2018-1-9 18:36
for i in range(10):
    if i%2 !=0: #取余数,若不为0,也就是奇数则
        print(i) #打印该奇数

嗯 謝謝
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-9 19:21:20 | 显示全部楼层
BngThea 发表于 2018-1-9 18:30
记住两点
1 continue结束本次循环,进入下次循环判断
2 循环体内修改 i 的值对每次循环用的i无任何影响, ...

嗯  懂點了 謝謝哈
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-9 19:22:09 | 显示全部楼层
影-死神 发表于 2018-1-9 18:40
这个的关键就在自增i后会不会影响从range(10)中取出的i
实际上,是不影响的,i自增2并打印后
i 依然是 ...

懂了 懂了 謝謝  兩個  i  整蒙圈了
1-9.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-9 19:26:52 | 显示全部楼层
Jons 发表于 2018-1-9 18:46
希望能帮助到你

嗯  嗯  謝謝 哈
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-9 22:18:29 | 显示全部楼层
把程序改了下能看的很清楚:
for i in range(10):
    print('初始的i=%d'%i)
    if i%2 !=0:
        print('循环内的i=%d,下个初始i就是%d'%(i,i+1))
        continue
    i += 2
    print('循环外的i=%d'%i)
结果:
======================= RESTART: D:\Python34\linshi.py =======================
初始的i=0
循环外的i=2
初始的i=1
循环内的i=1,下个初始i就是2
初始的i=2
循环外的i=4
初始的i=3
循环内的i=3,下个初始i就是4
初始的i=4
循环外的i=6
初始的i=5
循环内的i=5,下个初始i就是6
初始的i=6
循环外的i=8
初始的i=7
循环内的i=7,下个初始i就是8
初始的i=8
循环外的i=10
初始的i=9
循环内的i=9,下个初始i就是10
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-12 18:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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