想了下,先写两个.
你这样循环初始i值不能为0.
""" 1、使用While循环 """
i = 1
N = 50
while True:
# do something
print("i = ", i)
i += i
if i >= N:
break
""" 2、使用生成器 """
def gen(i, N):
for index in range(i,N+1):
# 因为是从0开始,所以这里要加1,可以根据需求进行修改
if index == i:
yield index
i += i
def gen2(i, N):
while True:
if i > N:
break
yield i
i += i
# gen 和 gen2 都是一样的,写法不同而已
# i 和 N 为 1 和 10
for index in gen(1, 10):
# do something
print(index)
# i 和 N 为 3 和 50
for index in gen2(3, 50):
# do something
print(index)
第一种用了While True死循环,循环里做判断逻辑跳出循环.
第二种使用了生成器,这样写其实也挺好的,我比较喜欢第二种,看着比较好看.
两种的思路都是一样的,写法不同而已.
其他的实现再说吧,我觉得够用了.