¿Qué es la sangría en Python?
¿Qué es la sangría en Python?
La sangría de código estricta es una característica importante de la sintaxis de Python, al igual que en la familia de lenguajes C (C, C, Java, etc.). igualmente importante y en la mayoría de los casos necesario. En muchas especificaciones de código, también existen requisitos para que la escritura del código se ajuste en líneas y se sangra el código de acuerdo con ciertas reglas, pero estos requisitos son puramente para la conveniencia de que las personas (programadores) los lean, usen o modifiquen. Para compiladores o intérpretes. haciendo la vista gorda por completo.
Pero para el intérprete de Python, la sangría antes de cada línea de código tiene un significado gramatical y lógico. Esta característica de Python a menudo causa controversia entre los usuarios de Python y los que no lo son.
De hecho, la sangría forzada del código de Python es como un arma de doble filo, con ventajas y desventajas. Obviamente, la ventaja es que bajo los estrictos requisitos de sangría del código, el código es muy limpio y estandarizado, agradable a la vista, mejora la legibilidad y, hasta cierto punto, la mantenibilidad.
Sin embargo, Python tiene una sangría de código estricta para las personas que se han transferido de otros idiomas, dado que el primer idioma para las carreras de informática y relacionadas suele ser C/C o Java, sus estilos gramaticales son básicamente los mismos. por lo que puede llevar algún tiempo acostumbrarse. La sangría del código Python es muy estricta. Si el código no se escribe de acuerdo con sus reglas, pueden ocurrir errores de sintaxis, como sangrías inesperadas y, a veces, errores lógicos.
Usando lenguaje C como comparación:
El siguiente segmento de código:
if(True)
{
x=1; //Declaración 1
y=2; //Declaración 2
}En lenguaje C, las llaves "{}" se utilizan como identificador del bloque de código, como se muestra arriba, la "Declaración 1" y la "Declaración 2" son bloques de código que pertenecen a la declaración condicional "if". Entre llaves, no es necesario considerar la sangría de la declaración. las llaves de "si", entonces pertenece al bloque de código "si". Pero para mejorar la legibilidad del código, generalmente se requiere una sangría bien formada.
En Python, cuando ocurren errores de sintaxis o errores lógicos debido a la sangría del código, generalmente hay dos situaciones: una es mezclar tabulaciones y espacios para la sangría, y la otra es que el editor maneja la sangría de manera diferente. Aquí hay un ejemplo, el código es el siguiente:
def test():
——if True:
————print("a ")
——else:
————print("b")
.....print("c") arriba En En el código, uso "——" para representar una tecla "TAB" y "." En circunstancias normales, pensará que lo anterior generará a, pero en realidad ingresa ac. Esto es lo que sucede cuando se usa un editor como el Bloc de notas. La razón es que el editor considera la tecla TAB como 4 espacios, por lo que el código. Parece correcto. Después de ser traducido por el editor, ya no pertenece al mismo bloque de código porque la sangría es diferente. Sin embargo, en pycharm, de acuerdo con el método de escritura anterior, se pueden generar los resultados esperados. Esto puede deberse a que pycharm trata un TAB como dos espacios.