2017-10-22 3 views
-2

Ich versuche, einen Fehler in Python zu werfen und ich erhalte einen SyntaxfehlerWerfen ZeroDivision Fehler 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) 

Und wenn ich es in der Konsole ausgeführt ist, was gedruckt wird:

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

Ich habe versucht, den Fehler zu erhöhen, aber das hat auch nicht funktioniert.

+0

Schauen Sie sich die Zeile oben an, wo der Fehler ist. Tipp: Zählen Sie die Anzahl der Klammern ... – DavidG

+0

verwenden Sie bitte eine Idee wie erhabenen Text. Syntax Fehler wäre viel einfacher zu erkennen – karthikr

+0

Oh mein Gott, danke. So ein dummer Fehler. –

Antwort

1

Die Ausnahme war nicht das Problem, es war die Linie darüber. Ich hatte:

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

und änderte es an:

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

Das ist es fixiert.