2

我有以下while循环:

accuracy = 0.0001    #  Or whatever
loop_limit = True
limit = 100
#  Main loop:
while abs(P - P_old).max() > accuracy or (if loop_limit: count > limit):  

不用说它不起作用。我想要的是or只在loop_limit = True.

我可以将一条if语句放入while循环中,仅在循环的每一次循环中重置计数变量 if loop_limit = True,但这将不得不在循环的每一次while循环中检查 loop_limit ,我想避免这种情况。(循环将运行数百万次,每次保护程序都有帮助)。我觉得有一种巧妙的方法可以做到这一点。

编辑:

请注意, (P - P_old) 是一个 numpy 数组,因此.max()我忘记提及这一点,我现在不想删除它,因为它已经在答案中被引用。

4

1 回答 1

4

尝试这个:

while abs(P - P_old) > accuracy or (loop_limit and count > limit):

顺便说一句,那max()应该在那里做什么?它甚至没有编译...

于 2013-07-02T15:48:07.273 回答