unexpected indent

Python Erreur courante

Explication

L'erreur `IndentationError: unexpected indent` survient quand une ligne est **indentée alors qu'elle ne devrait pas l'être**. En Python, l'indentation définit les blocs de code : un espace ou une tabulation en trop, là où Python n'attend pas un nouveau bloc, déclenche l'erreur. ```python x = 1 y = 2 # cette ligne ne devrait pas être indentée # IndentationError: unexpected indent ```

Causes courantes

- **Espace ou tabulation accidentels** en début de ligne. - **Mélange de tabulations et d'espaces** (le piège le plus courant et le plus sournois). - **Copier-coller** depuis une source mal formatée. - **Bloc mal aligné** après un collage ou une fusion de code.

1. Alignez l'indentation de manière cohérente

Toutes les lignes d'un même bloc doivent avoir exactement la même indentation :

x = 1
y = 2   # ✅ même niveau que x

2. Utilisez 4 espaces, jamais de tabulations

La convention Python (PEP 8) est 4 espaces par niveau. Configurez votre éditeur pour insérer des espaces à la place des tabulations.

3. Repérez les mélanges tabs/espaces

Lancez Python avec l'option -tt qui transforme les incohérences en erreurs explicites :

python -tt mon_script.py

Dans VS Code : « Convert Indentation to Spaces » et activez l'affichage des espaces.

Comment prevenir cette erreur

- **Configurez votre éditeur** : 4 espaces, conversion automatique des tabulations. - **Utilisez un formateur** comme `black` qui normalise toute l'indentation. - Activez l'affichage des caractères invisibles pour repérer tabs et espaces. - 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 entre `unexpected indent` et `expected an indented block` ?
`unexpected indent` = il y a une indentation en trop là où on n'en attendait pas. `expected an indented block` = il en **manque** une, typiquement après un `:` (un `if`, `for`, `def` sans corps indenté).
Pourquoi mon code semble bien aligné mais l'erreur persiste ?
Vous mélangez probablement tabulations et espaces : visuellement identiques, ils sont différents pour Python. Convertissez tout en espaces (4 par niveau).

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.