L'indentation est une caractéristique essentielle d'un code lisible et maintenable, mais peu de langages l'appliquent. Python est l'un de ces rares.
Si Python détermine que votre code est indenté de manière incorrecte, vous verrez le message "IndentationError" lorsque vous exécuterez votre code. Mais comment résoudre ce problème et comment l'empêcher à l'avenir ?
Pourquoi obtenez-vous l'erreur d'indentation en Python ?
L'erreur « IndentationError: attendu un bloc indenté » est quelque chose que vous êtes susceptible de voir lorsque vous commencez à utiliser Python, surtout si vous venez d'un autre langage de programmation.
le spécificités des règles d'indentation de Python sont complexes, mais ils se résument à une chose: indenter le code dans les blocs. Cela vaut pour les fonctions, les clauses if, etc. Voici un exemple de code Python mal formaté :
fname = "Gaurav"
lname = "Siyal"
si fname == "Gaurav" et lname == "Siyal":
print("Tu es Gaurav")
autre:
print("Tu es quelqu'un d'autre")
Lorsque vous essayez d'exécuter le code ci-dessus, vous obtenez un message comme celui-ci :
Fichier "tmp.py", ligne 5
print("Tu es Gaurav")
^
IndentationError: attendait un bloc indenté
Au lieu de cela, vous devez ajouter soit une tabulation, soit une série d'espaces au début des deux lignes qui représentent les blocs :
fname = "Gaurav"
lname = "Siyal"
si fname == "Gaurav" et lname == "Siyal":
print("Tu es Gaurav")
autre:
print("Tu es quelqu'un d'autre")
Si vous indentez avec des espaces, vous pouvez en fait utiliser n'importe quel nombre que vous aimez, tant que vous êtes cohérent et sans ambiguïté. La plupart des programmeurs utilisent deux, quatre ou huit espaces.
Cas courants d'indentation correcte
Voici quelques exemples auxquels vous pouvez vous référer, afin de vous assurer que vous indentez correctement.
Si les déclarations
Indenter le bloc qui suit un si déclaration:
si mon_nom == "Gaurav":
print("Je m'appelle Gaurav")
retourner Vrai
Les fonctions
Le corps d'une fonction est un bloc. Vous devez indenter ce bloc entier :
def numéro_magique() :
résultat = 42
résultat de retour
imprimer numéro_magique()
Pour les boucles
Comme pour une instruction if, le corps d'une boucle for doit être indenté d'un niveau de plus que la ligne commençant par le pour mot-clé:
pour i dans l'intervalle (10) :
imprimer (je)
Assurez-vous que votre éditeur indente correctement
La plupart des éditeurs de texte modernes prennent en charge l'indentation automatique du code. Si votre éditeur détermine qu'une ligne de code doit être indentée, il ajoutera automatiquement des tabulations ou des espaces.
Dans Espion, les options d'indentation sont disponibles sous Outils > Préférences > Code source:
Si vous utilisez vim, vous pouvez modifier votre configuration et utiliser le indentation automatique et les options associées pour configurer l'indentation. Par exemple, voici une configuration courante :
définir l'indentation automatique
définir l'onglet de développement
définir la tabulation = 4
définir softtabstop=4
définir la largeur de décalage = 4
Cela indentera automatiquement en utilisant quatre espaces.
Cependant, aucun éditeur ne peut rendre l'indentation automatique à l'épreuve des balles. Il faudra tout de même faire attention à l'indentation car certains cas sont ambigus :
Dans cet exemple, la finale retourner L'instruction est en retrait d'un niveau à partir de la signature de la fonction sur la première ligne. Cependant, si vous positionnez votre curseur à la fin de l'avant-dernière ligne et appuyez sur Entrer, une des deux choses peut arriver. Votre éditeur pourrait positionner le curseur :
- Deux niveaux d'indentation dans, alignés avec "res =..."
- Un niveau de retrait à l'intérieur, aligné avec le "sinon :"
Votre éditeur ne peut pas faire la distinction entre ces deux cas: vous voudrez peut-être ajouter plus de code dans le bloc if/else, ou non.
Gestion de l'erreur "Attendu un bloc indenté" de Python
Les erreurs sont monnaie courante en Python, comme dans tout autre langage de programmation. Les règles strictes de Python concernant l'indentation peuvent ajouter un nouveau type d'erreur à prendre en compte, mais elles sont utiles. Un code correctement indenté est plus lisible et cohérent entre les équipes.
L'erreur d'indentation n'est pas la seule à laquelle vous aurez à faire face. Il est utile de se familiariser avec les erreurs Python courantes afin de savoir comment les déboguer et quoi faire pour les corriger.
Que signifie l'erreur Python "List index out of range" ?
Lire la suite
Rubriques connexes
- Programmation
- Python
A propos de l'auteur
Gaurav Siyal a deux ans d'expérience en rédaction, écrivant pour une série d'entreprises de marketing numérique et de documents sur le cycle de vie des logiciels.
Abonnez-vous à notre newsletter
Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !
Cliquez ici pour vous abonner