| You are here: Inicio > Inmersión en Python > Su primer programa en Python > Sangrado (indentado) de código | << >> | ||||
Inmersión en PythonPython de novato a experto |
|||||
Las funciones de Python no tienen begin o end explícitos, ni llaves que marquen dónde empieza o termina su código. El único delimitador son dos puntos (:) y el sangrado del propio código.
def buildConnectionString(params): """Crea una cadena de conexión partiendo de un diccionario de parámetros. Devuelve una cadena.""" return ";".join(["%s=%s" % (k, v) for k, v in params.items()])
Los bloques de código van definidos por su sangrado. Con «bloque de código» quiero decir funciones, sentencias if, bucles for, while, etc. El sangrado comienza un bloque y su ausencia lo termina. No hay llaves, corchetes ni palabras clave explícitas. Esto quiere decir 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 a cuatro espacios. No tienen por qué ser cuatro, el único requisito es que sea consistente. La primera línea que no esté sangrada queda ya fuera de la función.
Ejemplo 2.6, “Sentencias if” muestra un ejemplo de sangrado de código con sentencias if
def fib(n):print 'n =', n
if n > 1:
return n * fib(n - 1) else:
print 'fin de la línea' return 1
Tras protestar bastante al principio y hacer unas cuántas analogías despectivas con Fortran, llegará a reconciliarse con esto y empezará a ver los beneficios. Uno de los más significativos es que todos los programas en Python tienen un aspecto similar, ya que el sangrado es no es una cuestión de estilo sino un requisito del lenguaje. Esto hace más sencilla la lectura y comprensión de código en Python escrito por otras personas.
| Python utiliza retornos de carro para separar sentencias y los dos puntos y el sangrado para reconocer bloques de código. C++ y Java usan puntos y coma para separar sentencias, y llaves para indicar bloques de código. | |
<< Todo es un objeto |
| 1 | 2 | 3 | 4 | 5 | 6 | |
Prueba de módulos >> |