Python IndentationError: Unindent no coincide con ningún nivel de sangría exterior
- La regla de sangría en Python
-
Causas de
IndentationError
en Python -
Solucione el
Error de sangría: la eliminación de la sangría no coincide con ningún nivel de sangría exterior
en Python
En el artículo, aprenderemos cómo resolver el Error de sangría
que se produce durante la ejecución del código. Veremos las diferentes razones que causan este error.
También encontraremos formas de resolver este error en Python. Comencemos con lo que es el Error de sangría
en Python.
La regla de sangría en Python
La sangría es una parte esencial del lenguaje Python. Depende de la sangría para definir bloques de código en su código.
Mientras que la sangría se puede hacer usando espacios y tabulaciones. Es muy fácil para un desarrollador detectar el flujo del código debido a la sangría.
Puede detectar fácilmente dónde comienza y termina un método/condición específico.
Causas de IndentationError
en Python
Uso de espacios y tabulaciones
Si usa espacio y tabulación para la sangría en el código de Python, el IDE arrojará un Error de sangría
. Si bien este suele ser el caso de estos errores, también pueden aparecer si no usa la sangría en alguna parte del código.
Como mencionamos anteriormente, hay dos formas de sangrar su código: tabulación o espacios. En Python, el estándar de cada nivel de sangría es cuatro espacios o una pestaña.
Si bien esta forma de sangría es la regla de la ley para Python, también es una ayuda visual para los desarrolladores de Python que pueden realizar un seguimiento de sus construcciones de código debido a esta sangría.
Código de ejemplo:
def exploring_indentation():
number = 9
if number == 9:
print("Indentation works like this!")
exploring_indentation()
La salida del código:
Indentation works like this!
Error de sangría debido a una sangría adicional en el código
Otra razón para un Error de sangría
puede ser una sangría adicional agregada como en el código de ejemplo a continuación.
Código de ejemplo:
def exploring_indentation():
number = 9
if number == 9:
print("Indentation works like this!")
else:
print("this is an example of an unnecessary indent")
exploring_indentation()
La salida del código:
File "<tokenize>", line 5
else:
^
IndentationError: unindent does not match any outer indentation level
La parte si no
del código está dentro de la condición if
porque la sangría es incorrecta.
Solucione el Error de sangría: la eliminación de la sangría no coincide con ningún nivel de sangría exterior
en Python
Uso consistente de espacios y tabulaciones
Si bien hacer un seguimiento de la sangría suena bastante tedioso, hay editores de código como PyCharm y VS Code que tienen funciones integradas para ayudarlo a realizar un seguimiento de la sangría.
Mientras escribe el código, cuando presiona Enter para pasar a la siguiente línea, el editor sangrará automáticamente su siguiente línea de código.
Además, si mezcla tabulaciones y espacios en su código, siempre puede encontrar la opción de convertir tabulaciones en espacios o viceversa.
Por ejemplo, en PyCharm, debe ir a “Editar” en la esquina superior izquierda, seleccionar la opción “Convertir sangrías” y elegir “A pestañas” o “A espacios” según sus requisitos.
Igualar el nivel de sangría exterior
En el siguiente código dado en el ejemplo, las declaraciones if
y elif
se asignan sin sangría. Al mismo tiempo, a la declaración else
se le asigna una sangría adicional.
Debido a esta sangría adicional en el nivel externo, el compilador de Python no puede reconocer la declaración else
y, por lo tanto, genera el Error de sangría
(unindent no coincide con ningún nivel de sangría externa).
Código de ejemplo:
a = int(input("Enter an integer A: "))
b = int(input("Enter an integer B: "))
if b > a:
print("B is greater than A")
elif a == b:
print("A and B are equal")
else:
print("A is greater than B")
La salida del código:
File "<string>", line 7
else:
^
IndentationError: unindent does not match any outer indentation level
Código de ejemplo correcto:
a = int(input("Enter an integer A: "))
b = int(input("Enter an integer B: "))
if b > a:
print("B is greater than A")
elif a == b:
print("A and B are equal")
else:
print("A is greater than B")
Estos problemas se solucionan fácilmente en los editores específicos de Python, ya que están hechos específicamente para mejorar la experiencia de programación sin preocuparse por errores menores como una sangría.
Sin embargo, al usar un Bloc de notas similar a IDE, es posible que desee tener cuidado con las pestañas y los espacios y realizar un seguimiento de la sangría minuciosamente, ya que no señalan estos errores hasta que haya ejecutado el código.
Esperamos que este artículo le resulte útil para comprender cómo solucionar el Error de sangría
en Python.
My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.
LinkedInArtículo relacionado - Python Error
- Administrar fallas de segmentación en Python
- Archivo <Stdin>, Línea 1, en <Módulo> Error en Python
- Arreglar AttributeError: el objeto 'generador' no tiene atributo 'siguiente' en Python
- Arreglar el comando cl.exe falló: no existe tal archivo o directorio en Windows
- Arreglar NameError: la variable no está definida en Python
- Arreglar Socket.Gaierror: [Errno 8] Nodename ni Servname proporcionado, o desconocido en Python