Python错误:“'float'对象不可下标”

时间:2019-12-12 01:59:06

标签: python

我正在使用教授给我的一些代码,但不知道如何解决。 我收到错误消息:

 26 err=(x0-2.)
 ---> 27 rate_est=abs(err[1:-1]/err[0:-2])
 28 print('The estimate of our convergence rate is:', rate_est)

 TypeError: 'float' object is not subscriptable

如果对您有用,请参见以下其他相关代码:

 import matplotlib.pyplot as plt
 import numpy as np

 def g(S,x):
     g=(1/2)*((S/x)+x)
     return g;

 x0=1
 S=2
 tol=pow(10.0,-10)
 stopCrit=1.0
 deltaX=1.0
 nIter=0
 xn=x0
 print(x0)
 while((stopCrit>tol) and (nIter<50)):
     nIter=nIter+1
     x1=g(S,x0)
     xn=np.append(xn,x1)
     print(x1)
     deltaX=np.abs(x1-x0)
     stopCrit=deltaX/np.abs(x1)
     x0=x1
 xn=np.array(xn)

 err=(x0-2.)
 rate_est=abs(err[1:-1]/err[0:-2])
 print('The estimate of our convergence rate is:', rate_est)

1 个答案:

答案 0 :(得分:0)

您的err=(x0-2.)是浮点数。在下面的语句中,您将其视为列表或元组或其他内容:err[1:-1]/err[0:-2],这没有任何意义。