我正在使用抓网脚本运行while True:
循环。我希望刮板在增量循环中运行,直到遇到某个错误。一般的问题是关于当满足特定条件时如何退出True循环。像这样的代码将永远输出第一次运行:
output 1;1
...
output 1;n
这是我的代码的最小可复制示例。
runs = [1,2,3]
for r in runs:
go = 0
while True:
go +=1
output = ("output " + str(r) + ";" +str(go))
try:
print(output)
except go > 3:
break
所需的输出是:
output 1;1
output 1;2
output 1;3
output 2;1
output 2;2
output 3;3
output 3;1
output 3;2
output 3;3
[done]
答案 0 :(得分:5)
您在这里不需要try
和except
。保持简单,只需在while
变量上使用简单的go
条件。在这种情况下,您甚至不需要break
,因为一旦go>=3
,条件将为False
,您将退出while循环并重新启动while循环以r
的下一个值。
runs = [1,2,3]
for r in runs:
go = 0
while go <3:
go +=1
output = ("output " + str(r) + ";" +str(go))
print(output)
输出
output 1;1
output 1;2
output 1;3
output 2;1
output 2;2
output 2;3
output 3;1
output 3;2
output 3;3
替代while :如@chepner所建议,您甚至不需要while
,最好通过go
上的for循环作为
for r in runs:
for go in range(1, 4):
output = ("output " + str(r) + ";" +str(go))
print(output)