web-dev-qa-db-fra.com

Je reçois un IndentationError. Comment je le répare?

J'ai un script Python:

if True:
    if False:
        print('foo')
   print('bar')

Cependant, lorsque j'essaie d'exécuter mon script, Python génère une IndentationError:

  File "script.py", line 4
    print('bar')
               ^
IndentationError: unindent does not match any outer indentation level

J'ai continué à jouer avec mon programme et j'ai également pu produire trois autres erreurs:

  • IndentationError: unexpected indent
  • IndentationError: expected an indented block
  • TabError: inconsistent use of tabs and spaces in indentation

Que signifient ces erreurs? Qu'est-ce que je fais mal? Comment puis-je réparer mon code?

35
Christian Dean

Sublime Text 3

Si vous codez dans Sublime Text 3, cela pourrait vous aider à résoudre les problèmes d’indentation.

Dans Sublime Text, lors de l'édition d'un fichier Python:

Menu Sublime Text>Préférences>Paramètres - Syntaxe spécifique:

Python.sublime-settings

{
    "tab_size": 4,
    "translate_tabs_to_spaces": true
}
1
chebaby

Solution rapide pour les utilisateurs de Sublime:

  1. Appuyez sur Ctrl-H pour accéder à Rechercher et remplacer. 
  2. En recherche: tapez 4 espaces
  3. Dans Remplacer: copiez et collez un onglet à partir de quelque part dans votre code.
0
Matthew Park

Vous voyez, vous avez une petite erreur.

if True:
    if False:
        print('foo')
   print('bar')

Vous étiez censé faire:

if True:
    if False:
        print('foo')
    print('bar')

Comme vous pouvez le voir, votre impression n’est que de 3 espaces en retrait, elle est supposée en avoir 4.

0
The Coder