鱼C论坛

 找回密码
 立即注册
查看: 1001|回复: 9

[已解决]python入门视频009中的一个疑问

[复制链接]
发表于 2019-8-19 01:44:10 | 显示全部楼层 |阅读模式

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

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

x
代码:
for i in range(10):
        if i%2 != 0:
                print(i)
                continue
        i +=2
        print(i)
问题:
这个for循环语句, 变量i是range(10)里面的0,1,2,3,4,5,6,7,8,9这10个数,但循环体内有i +=2这个表达式,但这里i的值变化之后没有改变for循环里面的i的值。不知道有没有大神解释在,这两个i之间的关系。
最佳答案
2019-8-19 06:59:54
你可以修改i的值,但每次循环之后for语句又会重新对i赋值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-19 06:59:54 | 显示全部楼层    本楼为最佳答案   
你可以修改i的值,但每次循环之后for语句又会重新对i赋值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-19 07:10:33 From FishC Mobile | 显示全部楼层
i 的值是固定的,0, 1, 2, 3, 4, 5, 6, 7, 8, 9,不会被你的 i += 2 修改。虽然成功修改了,但在下一次循环 i 还会被 for 循环重新赋值,所以 i += 2 在这个程序中并没有用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-8-19 08:32:14 | 显示全部楼层
每一次循环后,i的值都会改变
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-19 10:07:29 | 显示全部楼层
mark一下,待高人来解释下原理
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-19 10:10:36 | 显示全部楼层
for i in range(10):
       你可以在这里再加一个print(i),看的会比较明显
        if i%2 != 0:
                print(i)
                continue
        i +=2
        print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-8-19 10:32:14 | 显示全部楼层
新手·ing 发表于 2019-8-19 06:59
你可以修改i的值,但每次循环之后for语句又会重新对i赋值

谢谢解答!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-19 10:33:20 | 显示全部楼层
zltzlt 发表于 2019-8-19 07:10
i 的值是固定的,0, 1, 2, 3, 4, 5, 6, 7, 8, 9,不会被你的 i += 2 修改。虽然成功修改了,但在下一次循环 ...

十分感谢!这下我就理解了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-19 10:34:27 | 显示全部楼层
bigplumtree 发表于 2019-8-19 10:10
for i in range(10):
       你可以在这里再加一个print(i),看的会比较明显
        if i%2 != 0:

我试了,有效!每次for循环都会给i赋一个值,从0到9.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-19 10:36:38 | 显示全部楼层
Jery_wang09 发表于 2019-8-19 10:07
mark一下,待高人来解释下原理

不知道你能否看到被人看到。如果看不到,我把版主和其他鱼友的解释综合一下。
版主的解释:
i 的值是固定的,0, 1, 2, 3, 4, 5, 6, 7, 8, 9,不会被你的 i += 2 修改。虽然成功修改了,但在下一次循环 i 还会被 for 循环重新赋值,所以 i += 2 在这个程序中并没有用。
鱼友的辅助解释:

for i in range(10):
       你可以在这里再加一个print(i),看的会比较明显
        if i%2 != 0:
                print(i)
                continue
        i +=2
        print(i)
希望对你有用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-23 21:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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