python课程p9中关于 i += 2 怎么理解?
完全没有基础的我看到课程最后的for i in range(10):
if i%2 != 0:
print(i)
continue
i += 2
print(i)
结果为:
3
1
5
3
7
5
9
7
11
9
感到茫然。。
i += 2是什么?我查到说是i = i +2。然而还是不能理解。为什么左右都有 i 。。。。。 本来就是呀,比如你长大了两岁,你现在的年龄=两年前你的年龄+2,等号两边都有"你"啊 i += 2是什么?我查到说是i = i +2。然而还是不能理解。为什么左右都有 i 。。。。。
Python 中赋值是先计算等号右边的结果,然后赋值给左边的,这里 i += 2 就是 i = i + 2
左边的 i 是重新接收数值用的 ,也就是被赋值的,右边的 i 是当前的值
举个例子 假设 i = 1那么i += 1就是i = i + 1 因为 i 等于 1那么 -> i = 1 + 1新的 i 就等于 2 第一次循环i=0 , 0%2 == 0 , 没有进入判断,所以 i += 2也就是 i = 0+2
第二次循环i=1 , 1%2 != 0 , 进入判断, print(i)
第三次循环i=2 , 2%2 == 0 , 没有进入判断,所以 i += 2也就是 i = 2+2
结果因该是 2 1 4 怎么会是 3 1 5 叶小贤 发表于 2020-6-29 16:13
结果因该是 2 1 4 怎么会是 3 1 5
你是对的,我之前为了试验,改成i += 3 了~ 发帖子的时候又贴了2 叶小贤 发表于 2020-6-29 16:12
第一次循环i=0 , 0%2 == 0 , 没有进入判断,所以 i += 2也就是 i = 0+2
第二次循环i=1 , 1%2 != 0 , ...
理解了,谢谢!所以其实问题在continue, 意思是continue之前如果成立直接print(i), 如果不成立 执行下面的i += 2,结果就是(0+2),1,(2+2),3,(4+2)。。。。。 Twilight6 发表于 2020-6-29 16:12
Python 中赋值是先计算等号右边的结果,然后赋值给左边的,这里 i += 2 就是 i = i + 2
左边的 i 是 ...
明白了,谢谢! shenche123 发表于 2020-6-29 16:31
明白了,谢谢!
客气了~~~{:10_297:}
页:
[1]