Contenu du cours
Concepts Avancés de Python
Concepts Avancés de Python
Utilisation des Assertions
En Python, l'instruction assert est une fonctionnalité intégrée conçue pour vérifier que des conditions spécifiques sont vraies dans votre code. Elle sert de vérification de bon sens, confirmant que certaines conditions préalables sont remplies à des points spécifiques pendant l'exécution du programme.
La syntaxe de l'instruction assert est la suivante :
En Python, les assertions sont effectuées par l'instruction assert
. Une assertion vérifie une condition, et si la condition s'évalue à False, elle lève une exception AssertionError avec un message d'erreur optionnel.
def calculate_average(grades): assert len(grades) > 0, "List of grades cannot be empty" return sum(grades) / len(grades) calculate_average([]) # Throw an error
Dans cet exemple, la fonction calcule la note moyenne, et l'assertion garantit que la liste des notes n'est pas vide avant de calculer la moyenne. Si les notes sont vides, l'assertion échoue, empêchant la division par zéro et indiquant une erreur claire dans la logique du programme.
Voici quelques catégories d'assertions couramment utilisées :
-
Assertions de Valeur : Ces assertions sont souvent employées dans les scénarios de débogage et de test pour vérifier que les valeurs utilisées dans un programme répondent aux critères attendus. Par exemple, vous pourriez utiliser des assertions comme
assert x >= 18
ou comme illustré précédemment,assert len(grades) > 0
; -
Assertions de Type : Les assertions de type sont particulièrement utiles dans les langages dynamiquement typés comme Python, où le type d'une variable peut changer. Par exemple, utiliser
isinstance(x, int)
confirme que x est bien un entier; -
Assertions de Collection : Ces assertions sont utilisées pour vérifier si une collection (comme une liste ou un dictionnaire) inclut des éléments particuliers ou répond à des critères spécifiques. Les exemples incluent
assert item in my_list
ouassert key in my_dict
; -
Assertions d'Exception : Celles-ci sont principalement utilisées dans les tests unitaires (que nous apprendrons dans la dernière section) pour s'assurer que le code gère correctement les exceptions. Par exemple,
assert_raises(ValueError, int, 'abc')
vérifie que convertir 'abc' en entier soulève une ValueError. De même,assert_raises(ExceptionType, my_function, arg1, arg2)
vérifie que l'appel de my_function avec arg1 et arg2 soulève une exception de type ExceptionType.
Maintenant, implémentons des assertions dans un projet existant pour vérifier que certaines conditions sont remplies pendant l'exécution du programme.
Swipe to start coding
Ajoutez des assertions à un projet exemple qui gère les données des utilisateurs, en veillant à ce que les informations des utilisateurs répondent à certains critères.
- Vérifiez que le
user_id
n'est pas déjà dans le dictionnaireusers
pour éviter les doublons; - Assurez-vous que
user_id
est un entier, maintenant la cohérence des types d'identifiants d'utilisateur; - Confirmez que
user_info
est passé comme un dictionnaire pour éviter les erreurs de type de données.
Solution
Merci pour vos commentaires !
Utilisation des Assertions
En Python, l'instruction assert est une fonctionnalité intégrée conçue pour vérifier que des conditions spécifiques sont vraies dans votre code. Elle sert de vérification de bon sens, confirmant que certaines conditions préalables sont remplies à des points spécifiques pendant l'exécution du programme.
La syntaxe de l'instruction assert est la suivante :
En Python, les assertions sont effectuées par l'instruction assert
. Une assertion vérifie une condition, et si la condition s'évalue à False, elle lève une exception AssertionError avec un message d'erreur optionnel.
def calculate_average(grades): assert len(grades) > 0, "List of grades cannot be empty" return sum(grades) / len(grades) calculate_average([]) # Throw an error
Dans cet exemple, la fonction calcule la note moyenne, et l'assertion garantit que la liste des notes n'est pas vide avant de calculer la moyenne. Si les notes sont vides, l'assertion échoue, empêchant la division par zéro et indiquant une erreur claire dans la logique du programme.
Voici quelques catégories d'assertions couramment utilisées :
-
Assertions de Valeur : Ces assertions sont souvent employées dans les scénarios de débogage et de test pour vérifier que les valeurs utilisées dans un programme répondent aux critères attendus. Par exemple, vous pourriez utiliser des assertions comme
assert x >= 18
ou comme illustré précédemment,assert len(grades) > 0
; -
Assertions de Type : Les assertions de type sont particulièrement utiles dans les langages dynamiquement typés comme Python, où le type d'une variable peut changer. Par exemple, utiliser
isinstance(x, int)
confirme que x est bien un entier; -
Assertions de Collection : Ces assertions sont utilisées pour vérifier si une collection (comme une liste ou un dictionnaire) inclut des éléments particuliers ou répond à des critères spécifiques. Les exemples incluent
assert item in my_list
ouassert key in my_dict
; -
Assertions d'Exception : Celles-ci sont principalement utilisées dans les tests unitaires (que nous apprendrons dans la dernière section) pour s'assurer que le code gère correctement les exceptions. Par exemple,
assert_raises(ValueError, int, 'abc')
vérifie que convertir 'abc' en entier soulève une ValueError. De même,assert_raises(ExceptionType, my_function, arg1, arg2)
vérifie que l'appel de my_function avec arg1 et arg2 soulève une exception de type ExceptionType.
Maintenant, implémentons des assertions dans un projet existant pour vérifier que certaines conditions sont remplies pendant l'exécution du programme.
Swipe to start coding
Ajoutez des assertions à un projet exemple qui gère les données des utilisateurs, en veillant à ce que les informations des utilisateurs répondent à certains critères.
- Vérifiez que le
user_id
n'est pas déjà dans le dictionnaireusers
pour éviter les doublons; - Assurez-vous que
user_id
est un entier, maintenant la cohérence des types d'identifiants d'utilisateur; - Confirmez que
user_info
est passé comme un dictionnaire pour éviter les erreurs de type de données.
Solution
Merci pour vos commentaires !