Error de sangría en Python: causas, cómo resolverlo, beneficios

Publicado: 2021-05-26

Como lenguaje de programación interpretado, de alto nivel y de propósito general, Python obtiene cada vez más elogios como la plataforma más prometedora, líder y emergente del mundo de la programación. Python no es nada sin su ingeniosa filosofía de diseño.

Una característica clave es un énfasis en el uso notable de sangría significativa para mejorar la legibilidad del código. La ilustración destacada a continuación describe brevemente los baluartes de la filosofía de diseño de Python como veinte aforismos, a los que alude Tim Peters, Pythoneer a largo plazo, quien finalmente se convirtió en uno de los desarrolladores principales más prolíficos y tenaces de Python.

Tabla de contenido

Una breve introducción a Python

Antes de profundizar en los tecnicismos específicos que subyacen al error de sangría en Python, debemos familiarizarnos con los fundamentos de Python y la necesidad de la sangría. Si lo hace, no solo lo ayudará a obtener una mejor apreciación del error en sí, sino que también ofrecerá una idea de las ventajas que obtienen los programadores al elegir resolver el mismo de manera efectiva.

El inicio de Python como un lenguaje de programación multiparadigma se remonta al año 1991. Desde entonces, los programadores han adaptado continuamente la estructura básica de Python para satisfacer una variedad de necesidades específicas del usuario, como la ciencia de datos y el desarrollo web y móvil.

Ahora, todos sabemos que tratar de comprender la escritura ilegible es minuciosamente complicado y, a menudo, exasperante. Del mismo modo, un código ilegible y sin estructura es simple y llanamente inaceptable en el mundo de la programación. Aquí es donde la noción de PEP o Python Enhancement Proposal viene al rescate del programador. PEP para la comunidad de Python es similar a un documento de Google compartido para la población en general.

Es un mandato descriptivo continuamente actualizado que mantiene a la comunidad de programación de Python completamente informada sobre las funciones y actualizaciones para mejorar la legibilidad del código. Por Guido van Rossum, Barry Varsovia y Nick Coghlan en 2001, el PEP 8 se conoce como el código de estilo de Python.

¿Qué es la sangría?

Se sabe principalmente que Python es un lenguaje de procedimiento y, por lo tanto, se usa una sangría en Python para segregar un código singular en grupos identificables de declaraciones funcionalmente similares. La mayoría de los lenguajes de programación, incluidos C, C++ y JAVA, emplean llaves '{}' para definir un bloque de código. Python marca una desviación de este diseño y prefiere el uso de sangría.

Sintaxis de sangría

De acuerdo con las convenciones descritas por la ética de espacios en blanco de PEP 8, cada nueva iteración (es decir, un bloque de código) debe comenzar con una sangría, y el final del código debe ser la primera línea que no tiene sangría. La práctica común para ejecutar una sangría es cuatro espacios en blanco o un solo carácter de tabulación, y las áreas se prefieren en gran medida a las tabulaciones.

Como se discutió anteriormente, los espacios en blanco iniciales al comienzo de una línea determinan el nivel de sangría de la línea. Para agrupar las declaraciones de un bloque de código en particular, deberá aumentar el nivel de sangría. Del mismo modo, para cerrar la agrupación, deberá reducir el nivel de sangría.

Verificación: 42 Temas e ideas emocionantes del proyecto Python

Causas del error de sangría en Python

El 'Error de sangría: se esperaba un bloque sangrado' no discrimina entre usuarios. Ya sea que sea un novato en la programación de Python o un desarrollador de software experimentado, esto seguramente sucederá en algún momento. En Python, dado que todo el código que escribe se organiza a través de espacios en blanco correctos, si en alguna instancia del código tiene una sangría incorrecta, el código general no se ejecutará y el intérprete devolverá una función de error. Para saber exactamente a qué prestar atención, a continuación se enumeran algunas de las causas comunes de un error de sangría en Python:

1. El uso simultáneo de tabulaciones y espacios durante la codificación. Se puede argumentar que, en teoría, tanto las pestañas como los espacios tienen el mismo propósito, pero consideremos esto desde la perspectiva del intérprete. Si los espacios en blanco y las tabulaciones se usan de manera inconsistente e intercambiable, se crea ambigüedad. Esto hará que el intérprete se confunda entre qué alteración usar y eventualmente devuelva un error de sangría en Python.

2. Ha colocado involuntariamente una sangría en el lugar equivocado o la ausencia de tabulaciones o espacios en blanco entre líneas de código. Dado que Python se adhiere a pautas estrictas para organizar los códigos escritos, una sangría en el lugar equivocado inevitablemente devolverá un error. Por ejemplo, la primera línea de Python no debe tener sangría.

3. Ocasionalmente, al terminar un programa excepcionalmente largo y atrasado, es posible que, sin saberlo, se pierda la sangría de funciones de instrucciones compuestas como for, while y if. Esto conducirá nuevamente a un error de sangría. Esta es la necesidad más básica de sangría cuando se usa Python y debe practicarse rigurosamente para dominarla.

4. Si olvidó usar la sangría al trabajar con funciones definidas por el usuario o diferentes clases, es probable que aparezca un error.

¿Cómo resolver un error de sangría en Python?

1. Compruebe si hay espacios en blanco o tabulaciones incorrectos. Desafortunadamente, no existe una solución rápida para un error de sangría. Dado que el código es suyo, el hecho es que tendrá que evaluar cada línea para identificar instancias erróneas individualmente. Sin embargo, dado que las líneas de código se organizan en bloques, el proceso es relativamente simple. Por ejemplo, si ha utilizado la declaración 'si' en una secuencia particular, puede verificar si se acordó de sangrar la siguiente línea.

2. Asegúrese de que la sangría de un bloque específico permanezca igual en todo el código, incluso si se introduce un nuevo bloque en el medio. Compruebe si hay inconsistencias en la sangría.

Si las soluciones manuales anteriores no funcionaron para usted y tiene dificultades para averiguar dónde se perdió la sangría, siga estos pasos:

3. Vaya a la configuración de su editor de código y habilite la opción que busca mostrar pestañas y espacios en blanco. Con esta función habilitada, verá pequeños puntos individuales, donde cada punto representa una pestaña/espacio en blanco. Si nota que falta una gota donde no debería estar, es probable que esa línea tenga un error de sangría.

4. Utilice la Guía de sangría integrada del intérprete de Python. Podría decirse que este método es muy ineficaz para varias líneas de código. Sin embargo, dado que lo lleva a través de cada línea y le muestra exactamente dónde se encuentra su error, es la forma más segura de encontrar y corregir todos los errores.

Lea también: Las 12 aplicaciones de Python más fascinantes en el mundo real

Beneficios de la sangría

La legibilidad y la consistencia son esenciales para cualquier buen código. Siguiendo el espacio en blanco de PEP 8, la ética no debería ser negociable. Justifica lógicamente su código, contribuyendo así a una experiencia de codificación más placentera. Además, si sigue esta pauta estilística en la que la legibilidad es su prioridad de facto, las personas que no conoce, pero que están interesadas en su trabajo, entenderán su código con facilidad.

Desventajas de la sangría

  • Si el código es grande y la sangría está dañada, puede ser tedioso corregir los errores de sangría. Esto suele ocurrir cuando se copia un código de una fuente en línea, un documento de Word o un archivo PDF.
  • Los lenguajes de programación populares suelen utilizar llaves para la sangría. Para los programadores que recién comienzan a usar Python, puede ser difícil adaptarse a la idea de usar espacios en blanco para la sangría.

Resumiendo

Todo lo que se encuentra entre usted y un código bien escrito es una sangría, y todo lo que se encuentra entre usted, su código bien escrito y su ejecución perfecta es un error de sangría. Ahora, todos los humanos cometemos errores. Todos los programadores son humanos. Por lo tanto, todos los programadores cometen errores. Pero un error de sangría se puede resolver fácilmente. Todo lo que necesitas hacer es respirar y tomar tu espacio.

Espero que aprenda mucho mientras trabaja en estos proyectos de Python. Si tiene curiosidad por aprender ciencia de datos para estar al frente de los avances tecnológicos vertiginosos, consulte el Programa PG ejecutivo en ciencia de datos de upGrad & IIIT-B y mejore sus habilidades para el futuro.

¿Qué errores puedo obtener debido a la sangría en Python?

Python determina cuándo comienzan y terminan los bloques de código mirando el espacio al principio de la línea. Puede encontrar los siguientes errores de sangría:
1. Sangría inesperada : esta línea de código tiene más espacios al principio que la anterior, pero la anterior no inicia un subbloque. En un bloque, todas las líneas de código deben comenzar con la misma cadena de espacios en blanco.
2. Unindent no corresponde a ninguno de los niveles de sangría externa : esta línea de código contiene menos espacios al principio que la anterior, pero tampoco coincide con ningún otro bloque.
3. Se esperaba un bloque sangrado : esta línea de código comienza con el mismo número de espacios que la anterior, pero se suponía que la línea anterior debía comenzar un bloque (por ejemplo, declaración if/while/for, definición de función).

¿Cómo se corrigen las pestañas y los espacios inconsistentes en la sangría de Spyder?

Las tabulaciones y los espacios son dos caracteres separados que aparecen en la pantalla como espacios en blanco. El problema es que no hay consenso sobre qué tan grande debe ser un carácter de tabulación, por lo que algunos editores lo muestran ocupando 8 espacios, otros 4 espacios y otros 2, y también es personalizable.
Cuando codificas pero una línea está sangrada con un tabulador y la otra con espacios, Python arroja un error, a pesar de que parece correcto en el editor (pero no se verá bien si duplicas el ancho de un tabulador; ahora las líneas de tabulación tendrán una sangría de dos niveles).
Para evitar este problema, vaya a las opciones de su editor de texto y habilite la función de conversión de tabulaciones a espacios , que reemplaza el carácter de tabulación con n espacios, donde n es el ancho de tabulación que usa su editor.

¿Cómo se muestran las sangrías en Spyder?

Seleccione su código y presione Tabulador o Shift + Tabulador para sangrar o eliminar la sangría. Otras herramientas para modificar su código se pueden encontrar en la sección Editar.