expected an indented block

Python Erreur courante

Explication

L'erreur `IndentationError: expected an indented block` survient quand une instruction qui ouvre un bloc (terminée par `:` — un `if`, `for`, `while`, `def`, `class`, `try`...) **n'est pas suivie d'un corps indenté**. Python attend au moins une ligne en retrait après les deux-points. ```python def saluer(): print("Bonjour") # le corps devrait être indenté # IndentationError: expected an indented block ```

Causes courantes

- **Corps de bloc non indenté** après un `:`. - **Bloc laissé vide** (un `if` ou une fonction sans contenu). - **Commentaire seul** comme corps (un commentaire ne compte pas comme instruction). - **Mélange tabulations/espaces** qui casse l'alignement.

1. Indentez le corps du bloc

def saluer():
    print("Bonjour")   # ✅ 4 espaces

2. Utilisez pass pour un bloc volontairement vide

def a_implementer():
    pass   # ✅ corps « vide » valide

3. Un commentaire ne suffit pas comme corps

if x > 0:
    # TODO
    pass   # il faut une vraie instruction, ici pass

Comment prevenir cette erreur

- **Indentez systématiquement de 4 espaces** après chaque `:`. - **Configurez votre éditeur** pour convertir les tabulations en espaces. - Utilisez un formateur (`black`) qui normalise l'indentation automatiquement. - Référence : [PEP 8 — Indentation](https://peps.python.org/pep-0008/#indentation).

Besoin d'aide sur votre projet ?

Besoin d'aide sur un probleme technique ? Decrivez-le pour des recommandations.

Nous contacter

Questions frequentes

Quelle différence avec `unexpected indent` ?
`expected an indented block` = il **manque** une indentation (corps absent après un `:`). `unexpected indent` = il y en a une **en trop** là où on n'en attendait pas. Ce sont les deux faces du même mécanisme.
Comment écrire une fonction que je remplirai plus tard ?
Mettez `pass` (ou un `...` / `raise NotImplementedError`) comme corps : `def f(): pass`. Python considère alors le bloc comme valide.

Erreurs similaires

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.