Maison > développement back-end > Tutoriel Python > Pourquoi une fonction « correctement indentée » provoque-t-elle une IndentationError en Python ?

Pourquoi une fonction « correctement indentée » provoque-t-elle une IndentationError en Python ?

Barbara Streisand
Libérer: 2024-11-03 03:36:02
original
790 Les gens l'ont consulté

Why does a

Pourquoi une fonction « correctement indentée » provoque-t-elle une IndentationError en Python ?

Lorsque vous travaillez avec Python, vous pouvez rencontrer une IndentationError même lorsque votre code semble avoir une indentation correcte. Cette erreur peut survenir lors de l'utilisation d'un bloc "try" sans bloc "sauf" ou "finally" correspondant.

Supposons que vous ayez un bloc de code comme celui-ci :

<code class="python">def first_function(x):
    try:
        return do_something_else()
def second_function(x, y, z):
    pass</code>
Copier après la connexion

Ce code peut produire une IndentationError comme ceci :

    def second_function(x, y, z):
    ^
IndentationError: unexpected unindent
Copier après la connexion

L'erreur indique que l'indentation de "second_function" est incorrecte. Cependant, malgré l'utilisation d'espaces comme indentation et l'alignement correct des lignes, vous rencontrez toujours l'erreur.

Cette erreur se produit car chaque bloc "essayer" nécessite au moins un bloc "sauf" ou "finalement" correspondant. . Dans le code donné, "first_function" contient un bloc "try" sans bloc "sauf" ou "finally" correspondant. Cela amène Python à s'attendre à ce que le code suivant se trouve dans le bloc "try", conduisant à l'IndentationError.

Pour résoudre ce problème, ajoutez un bloc "sauf" ou "finalement" correspondant à "first_function". Par exemple :

<code class="python">def first_function(x):
    try:
        return do_something_else()
    except Exception:  # Add an except block to handle exceptions
        pass</code>
Copier après la connexion

Vous pouvez également utiliser un bloc « finalement » au lieu d'un bloc « sauf ». Un bloc "finally" est toujours exécuté, qu'une exception se produise ou non.

<code class="python">def first_function(x):
    try:
        return do_something_else()
    finally:  # Add a finally block to ensure some code always runs
        pass</code>
Copier après la connexion

En ajoutant un bloc "sauf" ou "finally", vous fournissez un gestionnaire d'exception spécifique ou vous assurez que certains codes s'exécute quelles que soient les exceptions. Cela résout l'IndentationError et améliore la lisibilité et la maintenabilité de votre code.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal