2017-10-22 2 views
-2

내가 파이썬에서 오류가 발생하는 것을 시도하고있다 그리고 나는 구문 오류던지는 ZeroDivision 오류 파이썬

def dx(f, x): 
    return abs(0-f(x)) 

def newtons_method(f, df, x0, e): 
    try: 
     delta = dx(f, x0) 
     while delta > e: 
      x0 = x0 - f(x0)/df(x0) 
      delta = dx(f, x0) 
     print('Root is at:', x0) 
     print('f(x) at root is: ', f(x0 

    except (ZeroDivisionError) as err: 
     print(err) 

def f(x): 
    return x**2 - 1 
    # return 6*x**5 -5*x**4 -4*x**3 +3*x**2 

def df(x): 
    return 2*x 
    # return 30*x**4 -20*x**3 -12*x**2 +6*x 

x0s = [-1, -0.5, 0, 0.5, 1] 

for x0 in x0s: 
    newtons_method(f, df, x0, 1e-5) 

가 계속 내가 콘솔에서 실행할 때이 인쇄되는 것입니다 :

(tensorflow) Dans-MacBook-Pro:research danhessler$ python newton.py 
    File "newton.py", line 17 
    except (ZeroDivisionError) as err: 
    ^
SyntaxError: invalid syntax 

나는 오류를 일으키려고했지만 그 중 하나가 작동하지 않았다.

+0

오류가있는 위의 줄을보십시오. 힌트 : 괄호의 수를 계산하십시오 ... – DavidG

+0

숭고한 텍스트와 같은 IDE를 사용하십시오. 구문 오류가 훨씬 더 간단하게 될 것입니다 – karthikr

+0

오 이런, 고마워. 그런 어리석은 실수. –

답변

1

위의 줄은 문제가 아니 었습니다. 내가했다 :

print('f(x) at root is: ', f(x0 

을 그리고 그것을 변경 : 그것을 고정

print('f(x) at root is: ', f(x0)) 

.