鱼C论坛

 找回密码
 立即注册
查看: 968|回复: 6

关于for语句

[复制链接]
发表于 2018-6-8 14:43:23 | 显示全部楼层 |阅读模式

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

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

x
在学习中有如下关于 for的语句:
for i in range(10):
    if i%2 !=0:
        print(i)
    i +=2
    print(i)
当中,
(1)    i%2!=0,我的理解是,i除以2的余数不等于0。视频中小甲鱼说,i%2就是余2,结果不是0的时候,打印i。这跟我的理解不同,应该怎样正确理解?
(2)   条件为真的时候才会继续循环下去,条件为假时,应会退出循环。既然是这样,那语句  i+=2  print(i)又有什么存在的意义呢?
(3)    完全相同的代码,我运行之后,最后一个数字是11,为什么小甲鱼运行的结果却是9呢?(如图)
以上问题还请高手给予解答。
另外,上面这段代码该怎样理解,请给予更明白的解释,再次强调一下,本人是纯新手和菜鸟。再次感谢!!
for.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-6-8 15:01:51 | 显示全部楼层
(1)    i%2!=0,我的理解是,i除以2的余数不等于0。视频中小甲鱼说,i%2就是余2,结果不是0的时候,打印i。这跟我的理解不同,应该怎样正确理解?
理解一下 % 的含义:a%b 表示a对b取余,比如 6%4 == 2
所以 i%2==0 的含义就是i是2的整数倍

(2)   条件为真的时候才会继续循环下去,条件为假时,应会退出循环。既然是这样,那语句  i+=2  print(i)又有什么存在的意义呢?
你说的是条件在这里对于的是i的取值为1~9,当然要执行完i==9后才结束循环
循环体里面对i的操作并不会影响每次循环开始时i的值

(3)    完全相同的代码,我运行之后,最后一个数字是11,为什么小甲鱼运行的结果却是9呢?
因为你没有写else语句,或者在if下面加上continue语句
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2018-6-8 17:56:37 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-8 21:07:46 | 显示全部楼层
这应该是打印10以内的奇数吧
for i in range(10):
    if i%2 !=0:
        print(i)
只要这段就够了吧,后面不需要
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-8 21:27:12 | 显示全部楼层
能不能把这个是算什么东西的题目也放上来啊,不然你随便弄个代码,只要不报错,不是都没问题吗 ?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-9 16:43:49 From FishC Mobile | 显示全部楼层
chongchuigu 发表于 2018-6-8 21:07
这应该是打印10以内的奇数吧
for i in range(10):
    if i%2 !=0:

实际打印出的,不光奇数,还有偶数,截图,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-9 20:14:37 | 显示全部楼层
菜鸟新手 发表于 2018-6-9 16:43
实际打印出的,不光奇数,还有偶数,截图,

老乌龟的代码不知道怎么样的,但是你这个代码,你看下,如果除以2余数不等于0,就打印出来,但是后面那个I +=2,你这个意思就是从IF代码下来,不管i是否等于0都加2,然后在打印出来,就是2,3,4,5,6,7,8,9,10,11,range(10)最大数是9,9+2就是11了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-23 09:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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