【发布时间】:2016-12-31 14:19:58
【问题描述】:
在开始学习 C 代码后,我一直认为 for 循环和 while 循环在本质上始终是等价的(因为其中一个总是可以仅使用另一个来重现其中一个的行为)。但是在python中,从for循环到while循环总是微不足道的,我找不到实现相反的方法。
在 python 中,有没有办法仅使用 for 循环来重现 while 循环(无限循环)的行为?
这是一个使用递归生成器不起作用的解决方案(由于递归限制):
def infinite_loopy():
yield "All work and no play makes Jack a dull boy"
for x in infinite_loopy():
yield x
#here starts the supposedly infinite-loop
for x in infinite_loopy():
print(x)
【问题讨论】:
-
@Aurora0001 这不是那个问题的重复,因为我希望 不使用 while-loops
-
该问题的公认答案不使用 while 循环,所以这正是您想要的,是吗?如果没有,为什么不呢?
-
@Kevin 糟糕,我只检查了这个问题。但是,是的,这将算作一个解决方案。
-
是的,不知何故我错过了建议的副本,并起草了一个与其他问题中接受的答案完全相同的答案......
-
@Antti Haapala 这真的算作重复吗?我觉得它们是两个不同的问题,附加有共同的答案。
标签: python loops for-loop while-loop