# 📘 Techniques pour rendre son code esthétique Ce cours propose une synthèse de techniques concrètes pour améliorer l’élégance, la lisibilité et la concision de votre code Python. Écrire du « beau code » ne relève pas uniquement du goût personnel, mais d’une culture partagée autour de la **lisibilité, simplicité et expressivité** ## ✅ 1. Soigner la présentation (PEP8) - Utiliser **4 espaces** pour l’indentation - Limiter les lignes à **79 caractères** - Nommer les variables en `snake_case` - Nommer les classes en `CamelCase` - Laisser une ligne vide entre deux fonctions - Éviter les importations inutiles - Espaces autour des opérateurs `a + b`, pas `a+b` - Saut de ligne entre les blocs logiques - Commentaires utiles et brefs ## 🧠 2. Nommer clairement Des noms explicites rendent les commentaires souvent superflus : ```python # Mauvais x = 7 # Meilleur nombre_utilisateurs_actifs = 7 ``` ## 🧩 3. Réduire la complexité - Découper les fonctions longues ou imbriquées - Éviter les `if`/`else` emboîtés en préférant des retours directs : ```python # Moins lisible def est_pair(n): if n % 2 == 0: return True else: return False # Plus lisible def est_pair(n): return n % 2 == 0 ``` ## 🧼 4. Utiliser les idiomes Python ### ✅ Affectation multiple ```python x, y = 3, 4 ``` ### 🔄 Inversion de variables ```python a, b = b, a ``` ### 📇 enumerate et zip ```python for i, val in enumerate(liste): print(i, val) for a, b in zip(liste1, liste2): print(a, b) ``` ## 🔁 5. Utiliser les compréhensions Les compréhensions rendent le code plus compact : ```python # Carrés des nombres pairs [x**2 for x in range(10) if x % 2 == 0] ``` ```python # Remplacer les négatifs par 0 [x if x >= 0 else 0 for x in valeurs] ``` ```python # Produit cartésien [(x, y) for x in [1, 2] for y in ['a', 'b']] ``` ## 🔎 6. Éviter les répétitions (DRY - Don't Repeat Yourself) Si un bloc est copié/collé plus de deux fois, il mérite probablement une fonction : ```python def afficher_statut(utilisateur): if utilisateur.est_admin: print("Admin") else: print("Standard") ``` ## 🧰 7. Utiliser des fonctions anonymes avec `lambda` ```python eleves = [("Alice", 14), ("Bob", 12)] tri = sorted(eleves, key=lambda x: x[1]) ``` ## 🧪 8. Utiliser `all()`, `any()`, `map()` ```python # Vérifie si tous les éléments sont valides notes = [12, 15, 18] if all(note >= 10 for note in notes): print("Tous les étudiants ont validé") # Vérifier si au moins un élément est valide if any(x > 15 for x in notes): notes # Applique une fonction à chaque élément nombres = ['1', '8', '27'] entiers = list(map(int, nombres)) ``` ## 🗺️ 9. Prendre soin de la présentation - Espaces autour des opérateurs `a + b`, pas `a+b` - Saut de ligne entre les blocs logiques - Commentaires utiles et brefs # 🗓️ Historique > **Dernière mise à jour :** `21 juillet 2025` > **Rédigé par :** [[Julien DUQUENNOY]]