Question 1Quelle fonction affiche un dictionnaire imbriqué en préservant sa structure avec sauts de ligne et indentation ?
pprint — Afficher dict et list imbriqués lisiblement
Là où print tasse un dict / list imbriqué sur une ligne, pprint.pp met en forme avec sauts de ligne et indentation, et pformat renvoie la chaîne pour la passer à un log.
Quand tu utilises print pendant le débogage, les dictionnaires et listes imbriqués s'entassent sur une ligne illisible tout le temps. Le module pprint (pretty-print) est un outil de la bibliothèque standard qui affiche les structures imbriquées avec indentation et sauts de ligne, ce qui le rend précieux pour le débogage et les logs.
pp et pformat — L'un affiche, l'autre retourne une chaîne
pprint a deux personnages principaux. pprint.pp(value) est une fonction qui formate et affiche directement sur la sortie standard, en retournant None. pprint.pformat(value), en revanche, retourne la chaîne formatée sans rien afficher à l'écran.
| Fonction | Rôle | Retourne |
|---|---|---|
| pprint.pp(value) | formate et affiche sur stdout | None (affiche directement) |
| pprint.pformat(value) | retourne la chaîne formatée | chaîne formatée |
| indent=N | largeur d'indentation (par défaut 1) | — |
| width=N | largeur max de ligne (par défaut 80) | — |
| sort_dicts=False | préserve l'ordre des clés du dict (Python 3.8+) | — |
Afficher la structure avec pprint.pp
pprint.pp(value) et print(value) se ressemblent pour les valeurs simples, mais leur sortie diverge dès qu'il y a des dicts ou listes imbriqués — print entasse tout sur une ligne, tandis que pp ajoute des sauts de ligne et une indentation correspondant à la profondeur de la structure.
Récupérer la chaîne formatée avec pprint.pformat
pprint.pformat(value) retourne la chaîne formatée sans rien afficher. Utilise pformat quand tu veux rediriger la sortie (la passer à un logger, coller des infos avant/après puis afficher, ou l'intégrer dans un message d'erreur). Les options width=N et indent=N fonctionnent comme pour pp.
Vérification des connaissances
Répondez à chaque question une par une.
Question 2Lequel utiliserais-tu pour obtenir une chaîne depuis pprint et la passer à une sortie de log ?
Question 3Comment changes-tu la largeur d'affichage de pprint.pp à 40 caractères ?