Python

Python Menu

Beim Programmieren passieren Fehler. Das ist einfach eine Tatsache des Lebens. Vielleicht hat der Benutzer eine falsche Eingabe gemacht. Vielleicht war eine Netzwerkressource nicht verfügbar. Vielleicht ist dem Programm der Speicher ausgegangen. Oder der Programmierer hat vielleicht sogar einen Fehler gemacht!

Pythons Lösung für Fehler sind Exceptions. Vielleicht hast du schon einmal eine Ausnahme gesehen.

# dies führt zu einem Fehler print(a)

Aber manchmal möchtest du nicht, dass Ausnahmen das Programm komplett stoppen. Du möchtest vielleicht etwas Besonderes tun, wenn eine Ausnahme ausgelöst wird. Das wird in einem try/except-Block gemacht.

Hier ist ein triviales Beispiel: Angenommen, du iterierst über eine Liste. Du musst über 20 Zahlen iterieren, aber die Liste wurde aus Benutzereingaben erstellt und könnte nicht 20 Zahlen enthalten. Nachdem das Ende der Liste erreicht ist, willst du einfach, dass der Rest der Zahlen als 0 interpretiert wird. Betrachte das folgende Beispiel.

def tue_was_mit_zahl(n): print(n)
def fange_dies(): die_liste = (1, 2, 3, 4, 5)
for i in range(20): try: tue_was_mit_zahl(die_liste[i]) except IndexError: # Wird beim Zugriff auf einen nicht existierenden Index einer Liste ausgelöst tue_was_mit_zahl(0)
fange_dies()

Else

Mit dem else-Schlüsselwort kann ein Codeblock definiert werden, der ausgeführt wird, wenn kein Fehler aufgetreten ist:

try: print("Hallo") except: print("Etwas ist schief gelaufen") else: print("Nichts ist schief gelaufen.")

Finally

Der finally-Block, falls angegeben, wird ausgeführt, unabhängig davon, ob der try-Block einen Fehler auslöst oder nicht.

try: print(x) except: print(" Etwas ist schief gelaufen") finally: print("Dies ist die letzte Anweisung")

Übung

Behandele alle Ausnahmen. Der Nachname des Akteurs soll zurückgegeben werden.

# Setup actor = {"name": "John Cleese", "rank": "fantastisch"}
# Zu ändernde Funktion!!! def nachname_holen(): return actor["last_name"]
# Test-Code nachname_holen() print("Alle Ausnahmen abgefangen! Gute Arbeit!") print("Der Nachname des Schauspielers ist %s" % nachname_holen())
actor = {"name": "Jeremy Irons", "rank": "fantastisch"}
def nachname_holen(): return actor["name"].split()[1]
nachname_holen() print("Alle Ausnahmen abgefangen! Gute Arbeit!") print("Der Nachname des Schauspielers ist %s" % nachname_holen())
test_output_contains("Alle Ausnahmen abgefangen! Gute Arbeit!") test_output_contains("Der Nachname des Schauspielers ist Irons") success_msg("Hervorragend")

Einführung

Python Basics

Python Advance

Data Science Python Tutorials

Python Eingebaute Funktionen