web-dev-qa-db-fra.com

Erreur d'indentation en Python

Je ne peux pas compiler à cause de cette partie de mon code:

if command == 'HOWMANY':
    opcodegroupr = "A0"
    opcoder = "85"
Elif command == 'IDENTIFY':
    opcodegroupr = "A0"
    opcoder = "81"

J'ai cette erreur:

Désolé: IndentationError: ('' unindent ne correspond à aucun niveau d'indentation externe ', (' wsn.py ', 1016, 30, "\ t\telif command ==' IDENTIFY ':\n")

Mais je ne vois aucune erreur d'indentation. Quel peut être le problème?

6
sharkbait

En cas de doute, changez votre éditeur pour que les tabulations et les espaces soient visibles. C'est également une très bonne idée de demander à l'éditeur de résoudre tous les onglets sur 4 espaces.

5
Udo Klein

Vous mélangez des onglets et des espaces.

Trouvez l'emplacement exact avec:

python -tt yourscript.py

et remplacez all tabs par des espaces. Vous voulez vraiment configurer votre éditeur de texte pour insérer uniquement des espaces pour les onglets.

9
Martijn Pieters

Dans Notepad ++ 

Affichage ---> Afficher les symboles ---> Afficher les espaces blancs et les onglets (sélectionner) 

remplace tous les onglets par des espaces.

3
PSL1988

Une erreur d'indentation se produit généralement lorsqu'il y a une incohérence dans le code signifie que nous avons utilisé des espaces et des tabulations pour l'indentation. J'ai une très bonne solution à cela, ouvrez simplement votre code dans l'éditeur de texte sublime et recherchez "Taille de l'onglet" dans le coin inférieur droit de Sublime Text Editor et cliquez dessus. Maintenant, sélectionnez soit

'Convert Indentation to Spaces'

OR

'Convert Indentation to Tabs'

Votre code fonctionnera dans les deux cas.

3
Rahul Satal

Il m'est arrivé aussi mais j'ai eu le problème. J'utilisais une empreinte de 5 espaces, mais quand on appuyait sur l'onglet, elle mettait quatre empreintes. Donc, je pense que vous devriez juste utiliser une chose; c'est-à-dire un bouton d'onglet pour ajouter un retrait ou des espaces. Et un idéal est de 4 espaces. J'ai trouvé IntelliJ très utile pour ces choses.

1
Vicrobot

Avez-vous peut-être utilisé un <tab> au lieu d'espaces?

Essayez de supprimer tous les espaces avant le code et de les lire à nouveau avec des caractères <space>, juste pour vous assurer que ce n'est pas un <tab>.

0
replay

Cela m'est aussi arrivé, python est sensible à l'espace, donc après ":" (deux points) vous pourriez avoir laissé un espace,
par exemple: [l'espace est représenté par "."] 

`if command == 'HOWMANY':.
     opcodegroupr = "A0"
     opcoder = "85"
 Elif command == 'IDENTIFY':.
     opcodegroupr = "A0"
     opcoder = "81"`

essayez donc de supprimer les espaces inutiles, si vous l'ouvrez dans IDE, votre curseur sera affiché loin de ":" comme: - "if command == 'HOWMANY': |"
.... alors que cela devrait être: - "if command == 'HOWMANY': |"

0
ojass