Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python中是否有一个函数用于计算从';对于';休息一下?_Python 3.x_Loops_Output_Spyder - Fatal编程技术网

Python 3.x Python中是否有一个函数用于计算从';对于';休息一下?

Python 3.x Python中是否有一个函数用于计算从';对于';休息一下?,python-3.x,loops,output,spyder,Python 3.x,Loops,Output,Spyder,我已经在python中编写了一个“for”“in”“range”循环,并为循环放置了一个“break”函数,以在特定条件下结束。我需要计算循环在断点处停止之前的迭代次数,但我找不到正确的函数。有什么想法吗 我试图创建一个range()值的列表,然后使用len()函数来获取计数,但range()列表不识别break函数,它只给我一个在范围结束之前每次迭代的列表 对于范围内的val(Nmax): x_n1=x_n-f(x_n)/fprime(x_n) 打印(x_n1) 如果(abs((x_n1-x

我已经在python中编写了一个“for”“in”“range”循环,并为循环放置了一个“break”函数,以在特定条件下结束。我需要计算循环在断点处停止之前的迭代次数,但我找不到正确的函数。有什么想法吗

我试图创建一个range()值的列表,然后使用len()函数来获取计数,但range()列表不识别break函数,它只给我一个在范围结束之前每次迭代的列表


对于范围内的val(Nmax):
x_n1=x_n-f(x_n)/fprime(x_n)
打印(x_n1)
如果(abs((x_n1-x_n)/(0.5*(x_n1+x_n)))

输出是每个成功迭代的数字列表。我需要生成一个额外的输出,该输出在达到中断之前提供所有输出的计数。

只需使用enumerate即可获得循环的索引:

for i, val in enumerate(range(Nmax)):    
    x_n1 = x_n - f(x_n)/fprime(x_n)

    print(x_n1)

    if( abs((x_n1 - x_n) / (0.5 * (x_n1 +x_n))) < delta ):
        break
    x_n = x_n1

print(i)
对于枚举中的i,val(范围(Nmax)):
x_n1=x_n-f(x_n)/fprime(x_n)
打印(x_n1)
如果(abs((x_n1-x_n)/(0.5*(x_n1+x_n)))
您可以在代码中添加计数器

counter = 0
for val in range(Nmax):
    x_n1 = x_n - f(x_n)/fprime(x_n)
    if( abs((x_n1 - x_n) / (0.5 * (x_n1 +x_n))) < delta ):
        counter += 1
        break
    x_n = x_n1

print(counter)
计数器=0
对于范围内的val(Nmax):
x_n1=x_n-f(x_n)/fprime(x_n)
如果(abs((x_n1-x_n)/(0.5*(x_n1+x_n)))

然后可以调用print函数。只需确保不要在for循环中定义计数器,否则每次迭代都会重置计数器。

由于您使用的是
范围
val
将计算循环迭代次数

for val in range(Nmax):    
    x_n1 = x_n - f(x_n)/fprime(x_n)

    print(x_n1)

    if( abs((x_n1 - x_n) / (0.5 * (x_n1 +x_n))) < delta ):
        break
    x_n = x_n1

print(val)
范围内val的
(Nmax):
x_n1=x_n-f(x_n)/fprime(x_n)
打印(x_n1)
如果(abs((x_n1-x_n)/(0.5*(x_n1+x_n)))
一般来说,
枚举
是获取循环计数器的最佳方法,但是当使用
范围
时,
i
val
将始终是相同的数字,因此您可以简单地使用
val
。您好@abfeldy!如果任何一个答案已经解决了你的问题,请考虑通过点击复选标记接受它。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。