for i in range(10): if i%2 != 0: print(i) i += 2 print(i)
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: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语句执行完后,这行都运行。而且这行在forin循环内,执行完后跳转回循环头部继续执行下一次循环
***** #循环结束后才执行这~~~注意看对齐 笨鸟学飞 发表于 2020-10-26 15:04
你的代码过程如上:我感觉你没理解for in循环的概念,以及对缩进理解还不透彻
哦,就是其中1 . 3 .5 .7 .9是第一个i%2!=0的结果,其他的是i+=2的结果对吧 yaoyao20170404 发表于 2020-10-26 15:24
哦,就是其中1 . 3 .5 .7 .9是第一个i%2!=0的结果,其他的是i+=2的结果对吧
对的 笨鸟学飞 发表于 2020-10-26 15:33
对的
明白了,感谢
页:
[1]