Bases & algorithmique · 6 mondes · 18 étapes

Python avancé

Le langage lui-même : texte, compréhensions, objets, erreurs, modules.

Progression

0 %

0/18 étapes terminées

Mode 7

Réviser vite, retenir longtemps

Des fiches express pour relire l'essentiel en deux minutes, des cartes mémoire qui reviennent au bon moment, et un jeu chronométré pour ancrer le vocabulaire.

« Résume les concepts les plus importants dans un guide clair et concis qui m'aide à réviser rapidement et à mémoriser les idées clés sans complexité inutile. »

Codey

Fiches express

L'essentiel, semaine par semaine

Semaine 1

5 points

Le texte pour de vrai

  • Les chaînes sont immuables : toute méthode renvoie une copie.
  • strip() sur toute donnée extérieure, avant toute comparaison.
  • split(sep) découpe, "".join(liste) recolle.
  • Les tranches [debut:fin:pas] excluent la borne de fin ; les indices négatifs partent de la fin.
  • Les f-strings formatent : :.2f, :<10, :>8, :.1%.
ligne = "  Codey ; 4200  "champs = [c.strip() for c in ligne.strip().lower().split(";")]print(f"{champs[0]:<8}|{int(champs[1]):>6}")

À retenir : Sans affectation, une méthode de chaîne ne sert à rien.

Semaine 2

5 points

Compréhensions et collections

  • [expression for e in source if condition] transforme et filtre.
  • La même syntaxe donne un dictionnaire, un ensemble ou un générateur.
  • sorted(x, key=..., reverse=True) trie selon un critère calculé.
  • zip apparie, enumerate numérote, le désempaquetage distribue.
  • Une compréhension illisible doit redevenir une boucle.
classement = sorted(table, key=lambda c: c[1], reverse=True)for rang, (nom, score) in enumerate(classement, start=1):    print(f"{rang}. {nom:<6}{score:>6}")

À retenir : La compréhension dit l'intention ; la boucle dit la mécanique.

Semaine 3

5 points

Les fonctions, vraiment

  • Les paramètres sans défaut d'abord, les optionnels ensuite.
  • Jamais de liste ou de dictionnaire comme valeur par défaut : None puis création.
  • *args collecte en tuple, **kwargs en dictionnaire.
  • Une fonction est une valeur : on la passe, on la stocke, on la renvoie.
  • Les cas impossibles se traitent en clause de garde, en tête de fonction.
def resume(*mesures):    if not mesures:        return {"compte": 0, "total": 0}    return {"compte": len(mesures), "total": sum(mesures)}

À retenir : La valeur par défaut est évaluée une fois, à la définition.

Semaine 4

5 points

Les objets

  • __init__ installe les attributs, self désigne l'instance.
  • __str__ rend l'objet affichable par un humain.
  • Une classe se justifie par ses comportements, pas par ses données seules.
  • super().__init__(...) est obligatoire dans un constructeur de sous-classe.
  • « est un » → héritage ; « a un » → composition.
class Robot:    def __init__(self, nom, energie=100):        self.nom = nom        self.energie = energie     def __str__(self):        return f"{self.nom} ({self.energie}%)"

À retenir : Pour un simple sac de valeurs, un dictionnaire ou une dataclass suffit.

Semaine 5

5 points

Erreurs et robustesse

  • try / except Type / else / finally : on nomme toujours le type attrapé.
  • finally s'exécute dans tous les cas.
  • raise refuse tôt une donnée invalide, avec un message chiffré.
  • Une exception personnalisée hérite d'Exception et donne un type au cas métier.
  • assert sert aux hypothèses internes, pas à valider une saisie.
for s in saisies:    try:        valides.append(int(s))    except ValueError:        rejets += 1

À retenir : N'attrape que ce que tu sais traiter.

Semaine 6

5 points

Modules et bibliothèque standard

  • Tout fichier .py est un module importable.
  • import module garde le préfixe ; from module import * est à éviter.
  • if __name__ == "__main__": sépare lancement et import.
  • json.dumps vers le texte, json.loads depuis le texte.
  • (fin - debut).days pour une durée ; Counter pour compter.
import jsonfrom collections import Counter fiche = json.loads(recu)lettre, n = Counter(fiche["nom"]).most_common(1)[0]

À retenir : Avant d'écrire un utilitaire, vérifie qu'il n'existe pas déjà.