1.5. Sangrado del código

Las funciones de Python no incluyen explícitamente begin o end, ni llaves que marquen dónde comienza o dónde acaba la función. El único delimitador son los dos puntos (“:”) y el propio sangrado del código.

Ejemplo 1.6. Sangrado de la función buildConnectionString


def buildConnectionString(params):
    """Build a connection string from a dictionary of parameters.

    Returns string."""
    return ";".join(["%s=%s" % (k, v) for k, v in params.items()])

Los bloques de código (funciones, sentencias if, bucles for, etc.) se definen por el sangrado. El sangrado comienza un bloque y el sangrado inverso lo termina. No hay llaves, corchetes ni palabras clave explícitas. Esto significa que el espacio en blanco es significativo, y debe ser consistente. En este ejemplo, el código de la función (incluida la cadena de documentación) está sangrado cuatro espacios. No tienen por qué ser cuatro, simplemente debe ser consistente. La primera línea que no está sangrada está fuera de la función.

Tras algunas protestas iniciales y algunas comparaciones despectivas con Fortran, se reconciliará usted con este sistema y comenzará a ver sus beneficios. Uno de los principales es que todos los programas en Python tienen un aspecto similar, ya que el sangrado es un requisito del lenguaje y no un asunto de estilo. Esto hace más fácil leer y comprender el código en Python de otras personas.

Nota
Python usa el retorno de carro para separar sentencias y los dos puntos y el sangrado para separar bloques de código. C++ y Java usan el punto y coma para separar sentencias y las llaves para separar bloques de código.

Lecturas complementarias