鱼C论坛

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

[已解决]for i in range(10): if i%2 != 0: print(i) i += 2 print(i)

[复制链接]
发表于 2020-10-26 14:45:28 | 显示全部楼层 |阅读模式

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

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

x
for i in range(10):
    if i%2 != 0:
        print(i)
    i += 2
    print(i)
为什么得出的数字排列是
2
1
3
4
3
5
6
5
7
8
7
9
10
9
11
是怎么得出来的呢??
最佳答案
2020-10-26 15:04:53
本帖最后由 笨鸟学飞 于 2020-10-26 15:11 编辑
for i in range(10):  #第1次循环i = 0 // i=1 // i=2
    if i%2 != 0:       #0%2等于0 // 1%2不等于0 // 等于0
        print(i)         #不打印 // 打印1 // 不打印
    i += 2             #i=2 // i=3 // i=4
    print(i)            #打印2 // 打印3 // 打印4

你的代码过程如上:我感觉你没理解for in循环的概念,以及对缩进理解还不透彻
for i in range(10):#1、循环开始,每次循环把右边序列的值依次赋值给i(第1次0,最后1次9),循环结束后跳转到与for语句齐平的代码处
    if ***               #2、条件分支,条件为真,或者非0值,则运行缩进处的代码
        *****           #缩进中的代码,条件为真,或者非0值,才运行
        *****           #缩进中的代码,条件为真,或者非0值,才运行
    *****               #注意看这个缩进与if齐平,因此不管if条件分支怎么走,在if语句执行完后,这行都运行。而且这行在for  in循环内,执行完后跳转回循环头部继续执行下一次循环
*****   #循环结束后才执行这~~~注意看对齐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-26 15:04:53 | 显示全部楼层    本楼为最佳答案   
本帖最后由 笨鸟学飞 于 2020-10-26 15:11 编辑
for i in range(10):  #第1次循环i = 0 // i=1 // i=2
    if i%2 != 0:       #0%2等于0 // 1%2不等于0 // 等于0
        print(i)         #不打印 // 打印1 // 不打印
    i += 2             #i=2 // i=3 // i=4
    print(i)            #打印2 // 打印3 // 打印4

你的代码过程如上:我感觉你没理解for in循环的概念,以及对缩进理解还不透彻
for i in range(10):#1、循环开始,每次循环把右边序列的值依次赋值给i(第1次0,最后1次9),循环结束后跳转到与for语句齐平的代码处
    if ***               #2、条件分支,条件为真,或者非0值,则运行缩进处的代码
        *****           #缩进中的代码,条件为真,或者非0值,才运行
        *****           #缩进中的代码,条件为真,或者非0值,才运行
    *****               #注意看这个缩进与if齐平,因此不管if条件分支怎么走,在if语句执行完后,这行都运行。而且这行在for  in循环内,执行完后跳转回循环头部继续执行下一次循环
*****   #循环结束后才执行这~~~注意看对齐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-26 15:24:28 | 显示全部楼层
笨鸟学飞 发表于 2020-10-26 15:04
你的代码过程如上:我感觉你没理解for in循环的概念,以及对缩进理解还不透彻

哦,就是其中1 . 3 .5 .7 .9是第一个i%2!=0的结果,其他的是i+=2的结果对吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-26 15:33:48 | 显示全部楼层
yaoyao20170404 发表于 2020-10-26 15:24
哦,就是其中1 . 3 .5 .7 .9是第一个i%2!=0的结果,其他的是i+=2的结果对吧

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

使用道具 举报

 楼主| 发表于 2020-10-26 15:40:13 | 显示全部楼层

明白了,感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-18 04:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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