Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!
Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount
Ausnahmewartung
Beim Programmieren passieren Fehler. Das ist einfach ein Teil des Lebens. Vielleicht hat der Benutzer falsche Eingaben gemacht. Vielleicht war eine Netzwerkressource nicht verfügbar. Vielleicht ging dem Programm der Arbeitsspeicher aus. Oder der Programmierer hat vielleicht sogar einen Fehler gemacht!
Pythons Lösung für Fehler sind Ausnahmen. Möglicherweise haben Sie schon einmal eine Ausnahme gesehen.
print(a)
#Fehler
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
Ups! Vergessen, der Variablen 'a' einen Wert zuzuweisen.
Aber manchmal möchte man nicht, dass Ausnahmen das Programm vollständig stoppen. Vielleicht möchte man etwas Besonderes tun, wenn eine Ausnahme ausgelöst wird. Dies geschieht in einem try/except-Block.
Hier ist ein triviales Beispiel: Angenommen, Sie iterieren über eine Liste. Sie müssen über 20 Zahlen iterieren, aber die Liste stammt aus Benutzereingaben und könnte nicht 20 Zahlen enthalten. Nachdem Sie das Ende der Liste erreicht haben, sollen die restlichen Zahlen einfach als 0 interpretiert werden. Hier ist, wie Sie das machen könnten:
def do_stuff_with_number(n):
print(n)
def catch_this():
the_list = (1, 2, 3, 4, 5)
for i in range(20):
try:
do_stuff_with_number(the_list[i])
except IndexError: # Ausgelöst, wenn auf einen nicht existierenden Index einer Liste zugegriffen wird
do_stuff_with_number(0)
catch_this()
Da war nichts allzu kompliziert! Sie können das mit jeder Ausnahme machen. Für weitere Details zur Behandlung von Ausnahmen schauen Sie sich die Python-Dokumentation an.
Übung
Behandeln Sie alle Ausnahmen! Denken Sie an die vorherigen Lektionen zurück, um den Nachnamen des Schauspielers zurückzugeben.
# Setup
actor = {"name": "John Cleese", "rank": "awesome"}
# Function to modify!!!
def get_last_name():
return actor["last_name"]
# Test code
get_last_name()
print("All exceptions caught! Good job!")
print("The actor's last name is %s" % get_last_name())
actor = {"name": "John Cleese", "rank": "awesome"}
def get_last_name():
return actor["name"].split()[1]
get_last_name()
print("All exceptions caught! Good job!")
print("The actor's last name is %s" % get_last_name())
test_output_contains("Cleese")
test_output_contains("All exceptions caught! Good job!")
test_output_contains("The actor's last name is Cleese")
success_msg("Great work!")
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!