Erreur d'indentation en Python : causes, comment résoudre, avantages

Publié: 2021-05-26

En tant que langage de programmation interprété, de haut niveau et à usage général, Python est de plus en plus reconnu comme la plate-forme la plus prometteuse, la plus avancée et la plus émergente du monde de la programmation. Python n'est rien sans sa philosophie de conception ingénieuse.

Une caractéristique clé est l'accent mis sur l'utilisation notable d'une indentation significative pour améliorer la lisibilité du code. L'illustration mise en évidence ci-dessous décrit brièvement les remparts de la philosophie de conception de Python sous la forme de vingt aphorismes, auxquels fait allusion Tim Peters, Pythoneer de longue date, qui est finalement devenu l'un des développeurs de base les plus prolifiques et les plus tenaces de Python.

Table des matières

Une brève introduction à Python

Avant de nous plonger dans les détails techniques sous-jacents à l'erreur d'indentation en Python, nous devons nous familiariser avec les principes fondamentaux de Python et la nécessité de l'indentation. Cela vous aidera non seulement à mieux apprécier l'erreur elle-même, mais vous donnera un aperçu des avantages que les programmeurs obtiennent en choisissant efficacement de résoudre la même chose.

La création de Python en tant que langage de programmation multi-paradigme remonte à l'année 1991. Depuis lors, les programmeurs ont continuellement adapté le fil de fer de base de Python pour répondre à une gamme de besoins spécifiques aux utilisateurs, tels que la science des données et le développement Web et mobile.

Maintenant, nous savons tous qu'essayer de comprendre une écriture manuscrite illisible est extrêmement délicat et souvent exaspérant. De même, un code illisible et non structuré est clair et simple, inacceptable dans le monde de la programmation. C'est là que la notion de PEP ou Python Enhancement Proposal vient à la rescousse du programmeur. Le PEP à la communauté Python s'apparente à un Google Doc partagé pour le grand public.

Il s'agit d'un mandat descriptif continuellement mis à jour qui tient la communauté de programmation Python parfaitement informée des fonctionnalités et des mises à jour pour améliorer la lisibilité du code. Par Guido van Rossum, Barry Warsaw et Nick Coghlan en 2001, le PEP 8 est appelé le code de style de Python.

Qu'est-ce que l'indentation ?

Il est principalement connu que Python est un langage procédural et, par conséquent, une indentation en Python est utilisée pour séparer un code singulier en groupes identifiables d'instructions fonctionnellement similaires. La majorité des langages de programmation, y compris C, C++ et JAVA, utilisent des accolades '{}' pour définir un bloc de code. Python marque une déviation par rapport à cette conception et préfère l'utilisation de l'indentation.

Syntaxe de l'indentation

Selon les conventions décrites par l'éthique des espaces blancs PEP 8, chaque nouvelle itération (c'est-à-dire un bloc de code) doit commencer par une indentation, et la fin du code doit être la première ligne non indentée. La pratique courante pour exécuter une indentation est de quatre espaces blancs ou d'un seul caractère de tabulation, les zones étant largement préférées aux tabulations.

Comme indiqué précédemment, les espaces blancs au début d'une ligne déterminent le niveau d'indentation de la ligne. Pour regrouper les instructions d'un bloc de code particulier, vous devrez augmenter le niveau d'indentation. De même, pour fermer le regroupement, vous devrez réduire le niveau d'indentation.

Checkout : 42 sujets et idées de projets Python passionnants

Causes de l'erreur d'indentation en Python

L'"Erreur d'indentation : un bloc indenté attendu" ne fait pas de distinction entre les utilisateurs. Que vous soyez novice en programmation Python ou développeur de logiciels expérimenté, cela arrivera forcément à un moment donné. En Python, puisque tout le code que vous tapez est organisé via des espaces blancs corrects, si à n'importe quelle instance du code, vous avez une indentation incorrecte, le code global ne s'exécute pas et l'interpréteur renverra une fonction d'erreur. Pour savoir exactement ce qu'il faut surveiller, voici quelques-unes des causes courantes d'une erreur d'indentation en Python :

1. L'utilisation simultanée d'onglets et d'espace lors du codage. On peut affirmer qu'en théorie, les tabulations et les espaces ont le même objectif, mais considérons cela du point de vue de l'interprète. Si les espaces blancs et les tabulations sont utilisés de manière incohérente et interchangeable, cela crée une ambiguïté. Cela conduira l'interpréteur à se confondre entre les modifications à utiliser et à renvoyer éventuellement une erreur d'indentation en Python.

2. Vous avez involontairement placé une indentation au mauvais endroit ou une absence de tabulations ou d'espaces blancs entre les lignes de code. Étant donné que Python adhère à des directives strictes pour organiser les codes écrits, une indentation au mauvais endroit renverra inévitablement une erreur. Par exemple, la première ligne de Python ne doit pas être en retrait.

3. De temps en temps, en terminant un programme exceptionnellement long et en retard, vous pourriez sans le savoir manquer l'indentation de fonctions d'instructions composées telles que for, while et if. Cela conduira à nouveau à une erreur d'indentation. C'est le besoin le plus fondamental d'indentation lors de l'utilisation de Python et doit être rigoureusement pratiqué pour le maîtriser.

4. Si vous avez oublié d'utiliser l'indentation lorsque vous travaillez avec des fonctions définies par l'utilisateur ou différentes classes, une erreur est susceptible de s'afficher.

Comment résoudre une erreur d'indentation en Python ?

1. Vérifiez les espaces blancs ou les onglets incorrects. Malheureusement, il n'existe pas de solution rapide à une erreur d'indentation. Puisque le code est le vôtre, il n'en reste pas moins que vous devrez évaluer chaque ligne pour identifier individuellement les instances erronées. Cependant, comme les lignes de code sont disposées en blocs, le processus est relativement simple. Par exemple, si vous avez utilisé l'instruction 'if' dans une séquence particulière, vous pouvez vérifier si vous vous êtes souvenu d'indenter la ligne suivante.

2. Assurez-vous que l'indentation d'un bloc spécifique reste la même dans tout le code, même si un nouveau bloc est introduit au milieu. Vérifiez les incohérences dans l'indentation.

Si les solutions manuelles ci-dessus n'ont pas fonctionné pour vous et que vous avez du mal à déterminer où vous avez manqué l'indentation, suivez ces étapes :

3. Accédez aux paramètres de votre éditeur de code et activez l'option qui cherche à afficher les onglets et les espaces blancs. Avec cette fonctionnalité activée, vous verrez de petits points simples, où chaque point représente un onglet/espace blanc. Si vous remarquez qu'une goutte manque là où elle ne devrait pas être, alors cette ligne a probablement une erreur d'indentation.

4. Utilisez le guide d'indentation intégré de l'interpréteur Python. On peut dire que cette méthode est très inefficace pour plusieurs lignes de code. Cependant, comme il vous guide à travers chaque ligne et vous montre exactement où se trouve votre erreur, c'est le moyen le plus sûr de trouver et de corriger toutes les erreurs.

Lisez aussi: Top 12 des applications Python fascinantes dans le monde réel

Avantages de l'indentation

La lisibilité et la cohérence sont essentielles pour tout bon code. Suivant l'espace blanc de la PEP 8, l'éthique devrait donc être non négociable. Il justifie logiquement votre code, contribuant ainsi à une expérience de codage plus agréable. De plus, si vous suivez cette ligne directrice stylistique où la lisibilité est votre de facto, les personnes qui vous sont inconnues, mais qui s'intéressent à votre travail, comprendront facilement votre code.

Inconvénients de l'indentation

  • Si le code est volumineux et que l'indentation est corrompue, il peut être fastidieux de corriger les erreurs d'indentation. Cela se produit généralement lorsqu'un code est copié à partir d'une source en ligne, d'un document Word ou d'un fichier PDF.
  • Les langages de programmation populaires utilisent généralement des accolades pour l'indentation. Pour les programmeurs qui commencent tout juste à utiliser Python, s'adapter à l'idée d'utiliser des espaces blancs pour l'indentation peut être difficile.

Résumé

Tout ce qui se trouve entre vous et un code bien écrit est une indentation, et tout ce qui se trouve entre vous, votre code bien écrit et son exécution transparente est une erreur d'indentation. Maintenant, tous les humains font des erreurs. Tous les programmeurs sont des humains. Par conséquent, tous les programmeurs font des erreurs. Mais une erreur d'indentation peut facilement être résolue. Tout ce que vous avez à faire est de respirer et de prendre votre espace.

J'espère que vous apprendrez beaucoup en travaillant sur ces projets Python. Si vous êtes curieux d'apprendre la science des données pour être à la pointe des avancées technologiques rapides, consultez le programme exécutif PG upGrad & IIIT-B en science des données et améliorez vos compétences pour l'avenir.

Quelles erreurs puis-je obtenir en raison de l'indentation en Python ?

Python détermine quand les blocs de code commencent et s'arrêtent en regardant l'espace au début de la ligne. Vous pouvez rencontrer les erreurs d'indentation suivantes :
1. Retrait inattendu - Cette ligne de code a plus d'espaces au début que celle qui la précède, mais celle qui la précède ne commence pas un sous-bloc. Dans un bloc, toutes les lignes de code doivent commencer par la même chaîne d'espaces.
2. Unindent ne correspond à aucun des niveaux d'indentation externes - Cette ligne de code contient moins d'espaces au début que la précédente, mais elle ne correspond à aucun autre bloc.
3. Un bloc en retrait était attendu - Cette ligne de code commence par le même nombre d'espaces que la précédente, mais la ligne précédente était censée commencer un bloc (par exemple, instruction if/while/for, définition de fonction).

Comment corrigez-vous les onglets et les espaces incohérents dans l'indentation Spyder ?

Les tabulations et les espaces sont deux caractères distincts qui apparaissent à l'écran sous forme d'espaces. Le problème est qu'il n'y a pas de consensus sur la taille d'un caractère de tabulation, donc certains éditeurs l'affichent comme occupant 8 espaces, d'autres comme 4 espaces et d'autres comme 2, et il est également personnalisable.
Lorsque vous codez, mais qu'une ligne est indentée avec une tabulation et l'autre avec des espaces, Python génère une erreur, malgré le fait que cela semble bon dans l'éditeur (mais cela n'aura pas l'air bien si vous doublez la largeur d'une tabulation ; maintenant les lignes de tabulation seront indentées de deux niveaux).
Pour éviter ce problème, accédez aux options de votre éditeur de texte et activez la fonction de conversion des tabulations en espaces , qui remplace le caractère de tabulation par n caractères d'espacement, où n est la largeur de tabulation utilisée par votre éditeur.

Comment afficher les retraits sur Spyder ?

Sélectionnez votre code et appuyez sur Tab ou Maj + Tab pour le mettre en retrait ou le désindenter. D'autres outils pour modifier votre code peuvent être trouvés dans la section Modifier.