Exercices : Spécification

Introduction à Python

Docstrings, Type Hinting et Documentation
🦊

🐞 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 🐞

Niveau 1 / 5

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.

Code Buggé
def C(l, L):
    P = 2 * (l + L)
    return P

x = 5
y = 10
print(C(x, y))
Solution

Réfléchis au problème...
Clique sur "Voir la solution" pour vérifier.

💡 Indice : Renommez la fonction C en calculer_perimetre, et les variables l, L, P, x, y par des noms plus clairs (largeur, longueur, perimetre...).

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")
1.1 - Documenter est_pair
2.1 - Spécification de compter_mots
2.2 - Spécification de surface
3.1 - Synthèse (Somme, Moyenne, Périmètre)

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.