for 循环与 continue
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
请问一下下面的 i+=2 没有对range(10) 里面的 i 从0 到 9 产生影响吗?
我的意思是,第一个 i 为 0 ,不满足 if 条件,所以到了 i+=2,然后打印出 2,这时候 i 不是变成 2 了吗?但是答案好像是到 range(10) 里面的 1 ,然后继续 if 判断,再继续下去,求解惑! 本帖最后由 sunrise085 于 2020-4-8 14:37 编辑
for循环,开始的时候生成遍历序列,在循环体内修改i,并没有修改遍历序列,不影响遍历序列的值。
for i in range(10):# 生成遍历序列,每次循环,依次把0-9的值依次赋值给i
if i % 2 != 0: # 如果i除以二的余数不为0(是奇数)
print(i) #打印i
continue #继续循环(不执行contiue以后的代码)
i += 2 #如果i是偶数给i+2(不影响下一次循环时 i 的值)
print(i) #打印i
就是依次计算0-9内的数,
如果是奇数,直接打印出来
如果是偶数,加二在打印
i+=2只会对单个i变量起作用,并不会对range的遍历0到9起作用,range的遍历只有使用步进才可以改变 很明显,第一个 i 为 0 不满足 if 条件,所以到了 i+=2,然后打印出 2 ,接下来的循环,i 的值是任然是从(0-10),范围取,相当于重新给 i 赋值了,再走条件语句
j=0
for i in range(10):
if i % 2 != 0:
continue
else:
j+=2
print(j) for循环的变量,每一次都只会在执行完for语句里的程序后被抹去,然后换成for 给它重新赋值的量,for 里面的不影响for的赋值 已经明白了,非常感谢大家的回复,谢谢~
页:
[1]