作者:小K
来源:麦叔编程
❝
如果只使用for语句你能写出一个像while True那样死循环么?
❞
我们的第一反应可能会想到for语句后面的那个可迭代对象是否可能是无限的,如果这个可迭代对象是无限长,那么用for循环语句是可以实现像while True那样的无限循环(死循环)。
「今天就带大家认识下传说中的“无限迭代器”。」
无限计数器
❝
使用无限迭代器需要引入itertools库。
❞
通常我们使用计数功能,一般就是循环语句带上n += 1,
n = 0 while True: print(n)
n += 1
如果使用无限迭代器的话,代码是这样的,
import itertools
natuals = itertools.count(1) for n in natuals: print(n)
count方法后面的参数是累加的值。
❝
以上两段代码按Ctrl + C可停止运行。
❞
此时肯定有小伙伴说,这个无限迭代也就这样,没啥了不起的。还是while True语句香。那么请往下看第二种无限迭代器。
无限循环遍历器
顾名思义,这个迭代器可以做到无限遍历。
for n in range(0,60): print(n)
上面的代码,只循环一次,打印一次0~59的数字。
假设我们这个时空是永恒的,那么现实时间的计时肯定也需要永恒的。
这个时候就轮到无限循环遍历器登场了!
import itertools
timer = itertools.cycle(range(0,60)) for t in timer: print(t)
只要在cycle方法的参数中传入一个可迭代对象,那么这个可迭代对象将会被无限次的遍历。
❝
同无限计数器一样,停止无限循环遍历器也需按Ctrl + C。
❞