Bru*_*e L 7 python iteration loops
我试图弄清楚如何计算在两个不同数字(如2和3)之间交替的某个整数(作为范围).因此输出将是2 5 7 10 12 15等.
我开始尝试改变一个简单的while循环,如下所示,取两个值:
a = 0
while a < 100:
a = a + 2 + 3
print(a, end=' ')
Run Code Online (Sandbox Code Playgroud)
但它最终只能计算到100乘5.
我已经尝试了数字范围和循环和模块,如itertools尝试找出一种方法来做到这一点,我完全被难倒了.
我在搜索之后执行了搜索,所有我能找到的是通过一个带有循环和范围的数字来计算.
Cor*_*mer 11
你可以用itertools.cycle它
import itertools
a = 0
it = itertools.cycle((2,3))
while a < 100:
a += next(it)
print(a)
Run Code Online (Sandbox Code Playgroud)
产量
2
5
7
10
...
95
97
100
Run Code Online (Sandbox Code Playgroud)
itertools.cycle只要你调用它,发生器就会不断地循环回元组.
您需要a在添加两个之后打印内容,并在添加三个之后:
a = 0
while a < 100:
a = a + 2
print(a, end=' ')
if a < 100:
a = a + 3
print(a, end=' ')Run Code Online (Sandbox Code Playgroud)
话虽这么说,你可以更好地构建一个生成器,迭代地添加两个和三个交错:
def add_two_three(a):
while True:
a += 2
yield a
a += 3
yield a
Run Code Online (Sandbox Code Playgroud)
然后,您可以打印生成器的内容,直到它达到100或更多:
from itertools import takewhile
print(' '.join(takewhile(lambda x: x < 100,add_two_three(0))))
Run Code Online (Sandbox Code Playgroud)