Kursinhalt
Python Fortgeschrittene Konzepte
Python Fortgeschrittene Konzepte
Verwendung von Assertions
In Python ist die assert-Anweisung eine eingebaute Funktion, die dazu dient, zu überprüfen, ob bestimmte Bedingungen in Ihrem Code wahr sind. Sie dient als Plausibilitätsprüfung und bestätigt, dass bestimmte Voraussetzungen zu bestimmten Zeitpunkten während der Programmausführung erfüllt sind.
Die Syntax für die assert-Anweisung ist wie folgt:
In Python werden Assertions durch die assert
-Anweisung durchgeführt. Eine Assertion überprüft eine Bedingung, und wenn die Bedingung zu False ausgewertet wird, löst sie eine AssertionError-Ausnahme mit einer optionalen Fehlermeldung aus.
def calculate_average(grades): assert len(grades) > 0, "List of grades cannot be empty" return sum(grades) / len(grades) calculate_average([]) # Throw an error
In diesem Beispiel berechnet die Funktion die Durchschnittsnote, und die Assertion stellt sicher, dass die Liste der Noten nicht leer ist, bevor der Durchschnitt berechnet wird. Wenn die Noten leer sind, schlägt die Assertion fehl, was eine Division durch Null verhindert und auf einen klaren Fehler in der Programmlogik hinweist.
Hier sind einige häufig verwendete Kategorien von Assertions:
-
Wert-Assertions: Diese Assertions werden häufig in Debugging- und Test-Szenarien eingesetzt, um zu überprüfen, ob die im Programm verwendeten Werte den erwarteten Kriterien entsprechen. Zum Beispiel könnten Sie Assertions wie
assert x >= 18
oder wie zuvor gezeigt,assert len(grades) > 0
verwenden; -
Typ-Assertions: Typ-Assertions sind besonders wertvoll in dynamisch typisierten Sprachen wie Python, wo sich der Typ einer Variablen ändern kann. Zum Beispiel bestätigt
isinstance(x, int)
, dass x tatsächlich ein Integer ist; -
Sammlungs-Assertions: Diese Assertions werden verwendet, um zu überprüfen, ob eine Sammlung (wie eine Liste oder ein Wörterbuch) bestimmte Elemente enthält oder bestimmte Kriterien erfüllt. Beispiele sind
assert item in my_list
oderassert key in my_dict
; -
Ausnahme-Assertions: Diese werden hauptsächlich im Unit-Testing verwendet (was wir im letzten Abschnitt lernen werden), um sicherzustellen, dass der Code Ausnahmen korrekt behandelt. Zum Beispiel überprüft
assert_raises(ValueError, int, 'abc')
, dass das Konvertieren von 'abc' in einen Integer einen ValueError auslöst. Ebenso verifiziertassert_raises(ExceptionType, my_function, arg1, arg2)
, dass der Aufruf von my_function mit arg1 und arg2 eine Ausnahme vom Typ ExceptionType auslöst.
Nun, lassen Sie uns Assertions in ein bestehendes Projekt implementieren, um zu überprüfen, ob bestimmte Bedingungen während der Programmausführung erfüllt sind.
Swipe to start coding
Fügen Sie einem Beispielprojekt, das Benutzerdaten verwaltet, Assertions hinzu, um sicherzustellen, dass die Benutzerinformationen bestimmten Kriterien entsprechen.
- Überprüfen Sie, dass die
user_id
nicht bereits imusers
Wörterbuch vorhanden ist, um Duplikate zu vermeiden; - Stellen Sie sicher, dass
user_id
ein Integer ist, um Konsistenz in den Benutzer-ID-Typen zu gewährleisten; - Bestätigen Sie, dass
user_info
als Wörterbuch übergeben wird, um Datentypfehler zu vermeiden.
Lösung
Danke für Ihr Feedback!
Verwendung von Assertions
In Python ist die assert-Anweisung eine eingebaute Funktion, die dazu dient, zu überprüfen, ob bestimmte Bedingungen in Ihrem Code wahr sind. Sie dient als Plausibilitätsprüfung und bestätigt, dass bestimmte Voraussetzungen zu bestimmten Zeitpunkten während der Programmausführung erfüllt sind.
Die Syntax für die assert-Anweisung ist wie folgt:
In Python werden Assertions durch die assert
-Anweisung durchgeführt. Eine Assertion überprüft eine Bedingung, und wenn die Bedingung zu False ausgewertet wird, löst sie eine AssertionError-Ausnahme mit einer optionalen Fehlermeldung aus.
def calculate_average(grades): assert len(grades) > 0, "List of grades cannot be empty" return sum(grades) / len(grades) calculate_average([]) # Throw an error
In diesem Beispiel berechnet die Funktion die Durchschnittsnote, und die Assertion stellt sicher, dass die Liste der Noten nicht leer ist, bevor der Durchschnitt berechnet wird. Wenn die Noten leer sind, schlägt die Assertion fehl, was eine Division durch Null verhindert und auf einen klaren Fehler in der Programmlogik hinweist.
Hier sind einige häufig verwendete Kategorien von Assertions:
-
Wert-Assertions: Diese Assertions werden häufig in Debugging- und Test-Szenarien eingesetzt, um zu überprüfen, ob die im Programm verwendeten Werte den erwarteten Kriterien entsprechen. Zum Beispiel könnten Sie Assertions wie
assert x >= 18
oder wie zuvor gezeigt,assert len(grades) > 0
verwenden; -
Typ-Assertions: Typ-Assertions sind besonders wertvoll in dynamisch typisierten Sprachen wie Python, wo sich der Typ einer Variablen ändern kann. Zum Beispiel bestätigt
isinstance(x, int)
, dass x tatsächlich ein Integer ist; -
Sammlungs-Assertions: Diese Assertions werden verwendet, um zu überprüfen, ob eine Sammlung (wie eine Liste oder ein Wörterbuch) bestimmte Elemente enthält oder bestimmte Kriterien erfüllt. Beispiele sind
assert item in my_list
oderassert key in my_dict
; -
Ausnahme-Assertions: Diese werden hauptsächlich im Unit-Testing verwendet (was wir im letzten Abschnitt lernen werden), um sicherzustellen, dass der Code Ausnahmen korrekt behandelt. Zum Beispiel überprüft
assert_raises(ValueError, int, 'abc')
, dass das Konvertieren von 'abc' in einen Integer einen ValueError auslöst. Ebenso verifiziertassert_raises(ExceptionType, my_function, arg1, arg2)
, dass der Aufruf von my_function mit arg1 und arg2 eine Ausnahme vom Typ ExceptionType auslöst.
Nun, lassen Sie uns Assertions in ein bestehendes Projekt implementieren, um zu überprüfen, ob bestimmte Bedingungen während der Programmausführung erfüllt sind.
Swipe to start coding
Fügen Sie einem Beispielprojekt, das Benutzerdaten verwaltet, Assertions hinzu, um sicherzustellen, dass die Benutzerinformationen bestimmten Kriterien entsprechen.
- Überprüfen Sie, dass die
user_id
nicht bereits imusers
Wörterbuch vorhanden ist, um Duplikate zu vermeiden; - Stellen Sie sicher, dass
user_id
ein Integer ist, um Konsistenz in den Benutzer-ID-Typen zu gewährleisten; - Bestätigen Sie, dass
user_info
als Wörterbuch übergeben wird, um Datentypfehler zu vermeiden.
Lösung
Danke für Ihr Feedback!