다음은 루트 찾기 방법 중 하나에 대한 코드입니다.Regulafalsi 코드를 실행할 수없는 이유는 무엇입니까? NoneType 오류로 인해
from __future__ import division
def falseposition(f, a, b, imax=50, tolerance=1.0e-10):
i = 0
while i < imax:
c = (a*f(b)-b*f(a))/(f(b) - f(a))
if c == 0 or f(c) < tolerance:
return c, i
elif (f(a)*f(c))<0:
b=c
else:
a=c
i += 1
f = lambda x: x**5 - x + 1
root, steps = falseposition(f, 1, 8)
print ("The root is", root, "and the value is", f(root), "; steps taken:", steps)
TypeError가 있습니다. 'NoneType'객체는 반복 가능하지 않습니다.
문제가 무엇인지 확인하려면 알려주십시오. 이 i
이 imax
보다 더 얻을 수 전에 기준 을 충족 c
의 값이 발견되면
첫 번째 'if'조건이 충족되지 않으면 어떻게됩니까? 그 점을 고려해야합니다. –
당신이 얻은 완전한 오류 메시지를 게시 할 때 사람들이 쉽게 도움을줍니다. – voiDnyx
반복 한계에 도달하면 함수는 끝에서 벗어나 암묵적으로'None'을 반환합니다. 이'None'을'root'와'steps'에 압축을 풀 때 오류가 발생합니다. – jasonharper