想不懂为啥会这样?
for i in range(10):if i%2 != 0:
print(i)
continue
i +=2
print(i)
输出答案:
2
1
4
3
6
5
8
7
10
9
for i in range(10):
if i%2 != 0:
print(i)
对于这部分代码我能理解,就是求余数,但是
continue
i +=2
print(i)这部分代码我就懵逼了,请大神为我解答下,谢谢。 本帖最后由 BIO-张磊 于 2020-6-4 19:24 编辑
我来模拟下,代码执行过程
i = 0, i % 2 = 0 ,i + 2 = 2,print(i) ->2 , i = i +1
i = 1, i %2 != 0,print(i) -> 1, continue,i = i+1
i = 2, i % 2= 0,i + 2 = 4,print(i) -> 4, i = i +1
........
所以一旦执行continue,for循环内continue下面不执行 结果没毛病啊,
0%2=0,0+2=2,所以第一项为2
1%2 != 0 ,直接输出1
以此类推,continue后面的一样可以执行 本帖最后由 _荟桐_ 于 2020-6-4 22:02 编辑
for i in range(10):
if i%2 != 0: # 如果i是奇数
print(i) # 打印i
continue # 继续遍历下一个数字,也就是不执行后边的代码
i +=2 # 如果i是偶数,就 i += 2
print(i) # 然后打印出来(i+2)
# 总结:
# 奇数直接打印
# 偶数则要+2后打印
所以结果就是
0+2
1
2+2
3
4+2
5
6+2
7
8+2
9
页:
[1]