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
Barbara Streisandoriginal
2024-11-03 03:36:02772parcourir

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>

Ce code peut produire une IndentationError comme ceci :

    def second_function(x, y, z):
    ^
IndentationError: unexpected unindent

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>

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>

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!

Déclaration:
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