Python 3.x Python中是否有一个函数用于计算从';对于';休息一下?
我已经在python中编写了一个“for”“in”“range”循环,并为循环放置了一个“break”函数,以在特定条件下结束。我需要计算循环在断点处停止之前的迭代次数,但我找不到正确的函数。有什么想法吗 我试图创建一个range()值的列表,然后使用len()函数来获取计数,但range()列表不识别break函数,它只给我一个在范围结束之前每次迭代的列表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
对于范围内的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!如果任何一个答案已经解决了你的问题,请考虑通过点击复选标记接受它。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。