3.7 KiB
30 Tage Python: Tag 17 - Ausnahmebehandlung & Packing/Unpacking
Autor:
Asabeneh Yetayeh
Zweite Edition: Juli 2021
📘 Tag 17
Ausnahmebehandlung (Exception Handling)
Python nutzt try und except, um Fehler elegant abzufangen. Ein Programm sollte bei einem Fehler nicht einfach abstürzen ("crash"), sondern kontrolliert reagieren ("graceful exit"). Das macht Anwendungen robuster gegen falsche Benutzereingaben oder externe Probleme (z. B. fehlende Dateien).
# Syntax
try:
code_der_einen_fehler_verursachen_koennte
except:
code_der_ausgefuehrt_wird_wenn_ein_fehler_auftritt
Beispiel mit spezifischen Fehlern:
try:
name = input('Name: ')
year = int(input('Geburtsjahr: '))
age = 2021 - year
print(f'Hallo {name}, du bist {age} Jahre alt.')
except ValueError:
print('Bitte gib eine gültige Zahl für das Jahr ein!')
except Exception as e:
print(f'Ein unerwarteter Fehler ist aufgetreten: {e}')
finally:
print('Dieser Teil wird IMMER ausgeführt (z.B. zum Aufräumen).')
Packing und Unpacking von Argumenten
In Python nutzen wir Symbole, um Sammlungen in einzelne Argumente zu zerlegen oder umgekehrt.
*wird für Listen/Tupel verwendet.**wird für Dictionaries verwendet.
Unpacking (Entpacken)
Wenn eine Funktion einzelne Werte erwartet, du aber eine Liste hast:
def add(a, b, c):
return a + b + c
nums = [1, 2, 3]
# print(add(nums)) # Fehler!
print(add(*nums)) # Funktioniert: 6
Packing (Verpacken)
Wenn du nicht weißt, wie viele Argumente übergeben werden, kannst du sie "einpacken":
def sum_all(*args):
return sum(args)
print(sum_all(1, 2, 3, 4, 5)) # 15
Enumerate
Wenn du beim Iterieren durch eine Liste auch den Index (die Position) wissen möchtest:
countries = ['Finnland', 'Schweden', 'Norwegen']
for index, country in enumerate(countries):
print(f'{index}. {country}')
# 0. Finnland, 1. Schweden, ...
Zip
Mit zip kannst du mehrere Listen gleichzeitig in einer Schleife durchlaufen:
fruits = ['Banane', 'Orange']
prices = [1.2, 0.8]
for fruit, price in zip(fruits, prices):
print(f'{fruit} kostet {price}€')
💻 Übungen - Tag 17
- Gegeben ist die Liste:
names = ['Finland', 'Sweden', 'Norway', 'Denmark', 'Iceland', 'Estonia', 'Russia']. Entpacke die ersten fünf Länder in eine Variablenordic_countries. Speichere 'Estonia' inesund 'Russia' inru.
🎉 HERZLICEN GLÜCKWUNSCH! 🎉
