23.8 Exceptions 

Stellen Sie sich einmal vor, Sie müssten in einer sehr frequentierten Schleife mit einem sich ständig ändernden Index i auf eine Liste liste zugreifen, können aber nicht sicher sein, ob ein Element liste[i] tatsächlich existiert. Wenn ein Element mit dem Index i existiert, soll dieses zurückgegeben werden, andernfalls 0. In einem solchen Fall ist es in der Regel ineffizient, vor dem Zugriff zu prüfen, ob ein i-tes Element existiert:
def f(liste, i): if i in liste: return liste[i] else: return 0
In der Regel ist es wesentlich effizienter, einfach auf das i-te Element zuzugreifen und im Falle einer geworfenen IndexError-Exception den Wert 0 zurückzugeben:
def f(liste, i): try: return liste[i] except IndexError: return 0




bestellen





