2016-11-02 4 views
0

Ich sitze nur für 10 Minuten starrte auf ein einfaches Stück Code, die ich von einem Führer kopiert habe und ich kann nicht verstehen, warum ich einen Fehler bekomme.Fehler in try/except construction

def transformation(x): 
    date_format = "%d/%m/%Y" 
    try: 
     a = dt.date(int(x[6:10]), int(x[3:5]), int(x[0:2])) 
    else: 
     a = dt.datetime.strptime(x, date_format) 
    finally: 
     return a 
    File "<ipython-input-91-f1f6fe70d542>", line 5 
    else: 
    ^
SyntaxError: invalid syntax 

Vielleicht ist das nur ich ... Was ist los? Nach der Zugabe von except:

def transformation(x): 
    date_format = "%d/%m/%Y" 
    try: 
     a = dt.date(int(x[6:10]), int(x[3:5]), int(x[0:2])) 
    except pass 
    else: 
     a = dt.datetime.strptime(x, date_format) 
    finally: 
     return a 
File "<ipython-input-93-c2285c857574>", line 5 
    except pass 
      ^
SyntaxError: invalid syntax 

Antwort

3

Sie benötigen einen except Klausel else zu verwenden:

Die try ... except Anweisung eine optionale else Klausel hat, die, wenn sie vorhanden, alle except folgen müssen Klauseln [Emphasis mine]

+0

bitte, sehen sie bearbeiten –

+2

Sie einen Doppelpunkt nach 'except' benötigen. –

0

Ich sah es nur aus dem Python Dokumentseite, also bin ich nur gonna Zitat, was es sagt dir:

Die try ... except-Anweisung hat eine optionale else-Klausel, die, wenn vorhanden, müssen alle außer Klauseln folgen. Es ist nützlich für Code, der ausgeführt werden muss, wenn die try-Klausel keine Ausnahme auslöst. Zum Beispiel:

for arg in sys.argv[1:]: 
     try: 
      f = open(arg, 'r') 
     except IOError: 
      print('cannot open', arg) 
     else: 
      print(arg, 'has', len(f.readlines()), 'lines') 
      f.close() 
Verwandte Themen