场景:在循环体内判断条件发生时,重新执行执行当前循环体(保留当前i值)
常规:类似的需求一般会在循环体里写一个 if 加上continue / break
实际:但是在for循环内修改i值,只会对当前一次的循环体内有效
for i in range(1,5):
print("i in use:", i)
i = 20
print("i modified:", i)
i in use: 1
i modified: 20
i in use: 2
i modified: 20
i in use: 3
i modified: 20
i in use: 4
i modified: 20
原理:想想 in 操作符的概念,应该就能明白了
解读:每次for循环,相当于是从range(1,5)这个类似list里做取数的动作,修改的只是取出的值,并不是取数来源的值
解决:使用 while 替换 for
i = 1
while i < 6:
print(i)
if(i % 2 == 0):
i += 2
i += 1
1
2
5