我正在运行一个针对给定N值运行模拟的代码。我试图添加一个while循环,以在失败的新N值下重试该循环。 例如,如果N = 10失败,我希望它增加到N = 20,依此类推,直到失败为止。目前,我有:
N=0
while True:
N=N+10
simulation(N)
break
我不能完全确定我是否正确使用了“ True”(我以为它可以运行直到它不会失败?)。我看过其他帖子,问类似的事情,解决方案使用异常,但是那时候他们已经知道确切的位置将发生故障,而我不知道N的值将失败。
答案 0 :(得分:4)
取决于您所说的“失败”。可能是
N=0
while True:
N = N+10
try:
simulation(N)
except SomeError:
pass
else:
break
那是
except
),请进行下一次迭代(使用pass
)else
)停止循环请注意,Python中的else
可以与try
和for
一起使用,但是其含义与每种语言中出现的if-else
完全不同。
答案 1 :(得分:0)
如果您知道simulation
函数的返回值,则可以将其用作检查其是否通过
N=0
while result:
N=N+10
result = simulation(N)
假设simulation
在通过时将返回False
,否则将返回True
。您可以否决支票是否是其他方式。您应该对N
进行另一次边界检查,以退出while循环,以防simulation
对于N
的任何值都没有通过。
我还建议捕获任何异常,以避免类似于上述答案的不正常退出。