🐞 Chasseur de Bugs
Avant de passer aux exercices de spécification, entraînez-vous à repérer les erreurs courantes de nommage, de typage et de logique qui rendent le code difficile à spécifier ou à maintenir.
Chasseur de Bugs 🐞
Le Nommage Confusnaming
Ce code fonctionne, mais il est illisible. Les noms de variables ne respectent pas les conventions Python (snake_case) et ne sont pas explicites.
def C(l, L):
P = 2 * (l + L)
return P
x = 5
y = 10
print(C(x, y))Réfléchis au problème...
Clique sur "Voir la solution" pour vérifier.
1. Le contrat de confiance : l'Assertion
Une assertion est un moyen de vérifier qu'une condition est vraie à un moment donné du programme. C'est comme un "checkpoint" dans un jeu vidéo : si la condition est fausse, le programme s'arrête immédiatement avec une erreur.
graph TD
A[Début du programme] --> B{Assertion vraie ?}
B -- Oui --> C[Le programme continue]
B -- Non --> D[❌ CRASH : AssertionError]
D --> E[Fin prématurée]
Exemple visuel : Imaginez une machine qui ne doit accepter que des nombres positifs.
x = -5
assert x > 0, "Alerte ! x doit être positif"
# Le programme plante ici, la suite n'est jamais exécutée.
print("Ouf, x est positif")
Exercice 1.1 : Documenter est_pair
Ajouter une docstring complète à la fonction est_pair suivante :
def est_pair(n):
return n % 2 == 0
Pour la vérification, la fonction doit avoir une docstring définie.