python - 在 while 循环中使用枚举函数

标签 python loops count

我有几种使用迭代来搜索正确答案的数学算法。这是一个例子:

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

我想计算算法通过循环获得ab 的次数。然而,这不是一个 for 函数,也不是一个列表,所以如果我使用 enumerate,我无法清楚地指出我想要计算哪些对象。有没有办法计算这些循环?

注意:我并不是要更改代码本身。我真的在寻找一种方法来计算 while 循环中的迭代次数,然后我可以将其用于其他情况。

最佳答案

如果您在 for 循环之外需要一个计数器,最简单的答案是使用一个简单的变量手动计数并在 while 循环内添加:

count = 0
while condition:
    ...
    count += 1

还有另一种情况 - 如果迭代的每个步骤对 yield 都有有意义的值,您可能希望循环是 generator ,然后使用 for 循环和 enumerate()。这在您关心您正在进行的步骤时最有意义,而不仅仅是最后的计数。例如:

def produce_steps():
    while condition:
        ...
        yield step_value

for count, step_value in enumerate(produce_steps()):
    ...

关于python - 在 while 循环中使用枚举函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29576733/

相关文章:

python - Pycharm 项目解释器

C++迷宫计数通过时间

MySQL-如何按组求和计数

从 mysql 表中选择记录的 Python 函数

python - 编写代码但需要使用 while 或 for 循环

python - 固定长度序列在 python 中以增量重复

python - 使用 join 时,Spark 迭代时间呈指数增长

javascript - 简单的 javascript 循环不起作用

javascript - 继续 JS 的 2 个层次

php - 将计数添加到 SQL 查询