鱼C论坛

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

学习continue时遇到的一个疑问,麻烦大家帮忙解释一下~

[复制链接]
发表于 2016-1-4 22:13:04 | 显示全部楼层 |阅读模式

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

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

x
刚刚开始学习爬虫  根据Mr.小甲鱼的视频学习的   今天看到continue这个命令 有点不太理解   就把例子中的这个命令删掉运行了一下然后捋了一下运算过程,结果有个问题理解不了,希望大家帮忙解答一下  谢谢

>>> for i in range(5):
        if i %2 != 0:
                print(i)
        i += 2
        print (i)

2
1
3
4
3
5
6

首先一个循环i从0到5,如果i是奇数则输出 并且自加2再输出一次,假如是偶数就只运行自加计算   
那么输出规律就是    i为奇数 ,输出一次i值  输出一次i+2的值
如果i为偶数   只输出一次i值


那么问题来了

先看第一句输出  2,i初始值为0,是偶数 第一个判断后不输出   自加2后输出   现在i值为2   
再看第二行输出   这时候循环,因为i是2  所以是偶数 所以按理说还是不应该输出   为什么这里输出了一个1?难道下面的i自加2  对 i in range(5)这里面step步进里面的i没有影响吗? 为什么会这样...
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-1-4 22:20:59 | 显示全部楼层
for语句相当于将0,1,2,3,4依次赋值给i,虽然在循环体里有 i += 2,但转到for又重新赋值了。
一般 i += 2 多是跟while语句。
如果想让for奇数循环可写成 for i in range(1, 5, 2):
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-4 22:46:42 | 显示全部楼层
冬雪雪冬 发表于 2016-1-4 22:20
for语句相当于将0,1,2,3,4依次赋值给i,虽然在循环体里有 i += 2,但转到for又重新赋值了。
一般 i += ...

就是说每次执行for循环的时候都是对i重新赋值    而不是单纯的对当前i值进行+1计算   可不可以这样理解?非常感谢   !!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-1-4 22:54:43 | 显示全部楼层
娄小信 发表于 2016-1-4 22:46
就是说每次执行for循环的时候都是对i重新赋值    而不是单纯的对当前i值进行+1计算   可不可以这样理解? ...

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

使用道具 举报

发表于 2016-1-6 23:45:59 | 显示全部楼层
本帖最后由 zooo 于 2016-1-6 23:49 编辑

直接使用continue
  1. for i in range(10):
  2.     if i % 2 == 0:
  3.         continue
  4.     print (i)
复制代码

continue的作用是中断当前循环,所以如果碰到偶数,就不会执行print了,而是又从第一行开始
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-19 02:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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