我有几种使用迭代来搜索正确答案的数学算法。这是一个例子:
def Bolzano(fonction, a, b, tol=0.000001):
while abs(b - a) > tol:
m = (a + b) / 2
if sign(fonction(m)) == sign(fonction(a)):
a = m
else:
b = m
return a, b
我想计算算法循环了多少次以获得a and b。然而,这不是一个for
函数并且它不是一个列表,所以我无法清楚地表明如果我使用的话我想要计算哪些对象enumerate
。有没有办法计算这些循环?
注意:我并不是想更改代码本身。我真的在寻找一种方法来计算迭代次数while
循环,然后我可以将其用于其他情况。
如果您需要在外面设立一个柜台,这是最简单的答案for
循环是使用简单的变量和加法来手动计数while
loop:
count = 0
while condition:
...
count += 1
还有另一种情况 - 如果迭代的每个步骤都具有有意义的值yield
,你可能希望你的循环是发电机 https://stackoverflow.com/a/1756156/722121,然后使用for
循环和enumerate()
。当您关心自己正在进行哪一步,而不仅仅是最后的计数时,这是最有意义的。例如:
def produce_steps():
while condition:
...
yield step_value
for count, step_value in enumerate(produce_steps()):
...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)