python - 创建一个无限循环

标签 python loops

我想测试 python 是否允许我运行这段代码:

listWords = []
for i in range (len(listWords)+1):
    listWords.append("New word")
print ("End loop")

原因是我想创建一个程序来尝试解决一个解决方案,然后将新项目添加到列表中进行测试。

为什么当我向列表中添加新项目时 python 不更新 for 循环范围?

有没有办法使用 for 循环解决这个问题? (我怀疑 while 循环可以解决我的问题,但我只是好奇)

谢谢

最佳答案

遍历同时更新的列表是不好的做法。

在您的代码中,在您运行循环之前已经计算了范围,因此范围将为 range(1),然后 for 循环仅运行一次并停止。如果 listWords 不为空,而是 listWords = ['a','b'],也可以观察到这一点,因此下面的循环运行 3 次,因为迭代器是 范围(3)

那么代码就变成了。

listWords = ['a','b']
for i in range (len(listWords)+1):
    listWords.append("New word")
print ("End loop")
print(listWords)
['a', 'b', 'New word', 'New word', 'New word']

虽然循环没有这样的限制,但下面的例子将继续运行,因为 len(listWords) 总是在下一次迭代结束时更新

listWords = []
i = 0
while i <  (len(listWords)+1):
    listWords.append("New word")
    i+=1

关于python - 创建一个无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55809659/

相关文章:

python - 使用任务队列中的 GAE channel

python - 分析和解释python代码的工具

python - SQLAlchemy 的管理界面?

Javascript:避免在涉及大量循环的代码中使用全局变量

loops - 如何在 Twig 循环中连接两个 Twig 变量

python - 如何在单个 Flask 应用程序中使用 Plotly-Dash 创建多个仪表板?

python - 将 Pandas Dataframe 与索引值组合作为列名

java - 如何从 do while 循环返回值

python - 在循环中跳过多次迭代

R - 遍历每一行并填充上一行的值