2017-10-22 11 views
-2

私はPythonでエラーをスローしようとしていると私は構文エラー投げるZeroDivisionエラーのPython

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)) 

関連する問題