Recursos libres para aprender a programar en español
Basado en https://github.com/MumukiProject/mumuki-apendice-imperativa-javascript
El lenguaje Python es utilizado ampliamente para construir software en todo el mundo, siendo una herramienta muy frecuente para el análisis de datos y la construcción de aplicaciones.
Las funciones en Python se declaran mediante la palabra clave def
y:
(
y )
), separados por comas (,
) ;:
;return
.Ejemplo:
def nombre_de_la_funcion(parametro1, parametro2, parametro3):
return ...
Por otro lado, las mismas pueden ser invocadas escribiendo su nombre y, entre paréntesis y separados por comas, pasando sus argumentos:
nombre_de_la_funcion(argumento1, argumento2, argumento3)
Esta forma de invocación se llama posicional porque el orden de los argumentos se corresponde directamente con el orden de los parámetros. Alternativamente, se pueden pasar los argumentos de forma nombrada (o etiquetada), en la que la correspondencia se especifica explícitamente…
nombre_de_la_funcion(parametro1 = argumento1, parametro2 = argumento2, parametro3 = argumento3)
… y ya no es necesario respetar el orden de los parámetros:
nombre_de_la_funcion(parametro2 = argumento2, parametro3 = argumento3, parametro1 = argumento1)
Los procedimientos se declaran de forma similar a las funciones, pero sin colocar un return
. Además, el cuerpo del procedimiento debe tener algún tipo de efecto (es decir, modificar algún elemento del programa), como por ejemplo:
Ejemplo:
def nombre_del_procedimiento(parametro1, parametro2, parametro3):
# acá hay que producir algún efecto
Por otro lado, los procedimientos se invocan de la misma forma que las funciones, pero al no tener un return
, no devolverán nada (o lo que es lo mismo, devuelve None
, que significa nada en inglés).
4 + 5
10 - 5
8 * 9
10 / 5
true or false
true and false
not false
# para cualquier tipo de dato
"hola" == "hola"
"hola" != "chau"
# para números
4 >= 5
4 > 5
4 <= 5
4 < 5
Los if
s en Python llevan su condición delante de un :
y su cuerpo tabulado:
if hay_personas_en_espera():
llamar_siguiente_persona()
Además, los if
s pueden opcionalmente tener un else
:
if hay_personas_en_espera():
llamar_siguiente_persona()
else:
esperar_siguiente_persona()
Por último, podemos combinar varios if
s para tomar decisiones ante múltiples condiciones usando elif
:
if hay_personas_en_espera():
llamar_siguiente_persona()
elif el_puesto_debe_seguir_abierto():
esperar_siguiente_persona()
else:
cerrar_puesto()
Las variables nos permiten recordar valores y les daremos un valor inicial usando =
:
pesos_en_mi_billetera = 100
dias_que_faltan_para_el_verano = 10
La mismas se actualizan de la misma forma, también mediante =
:
pesos_en_mi_billetera = 65
dias_que_faltan_para_el_verano = 7
En ocasiones las asignaremos usando el valor anterior:
pesos_en_mi_billetera = pesos_en_mi_billetera * 2
dias_que_faltan_para_el_verano = dias_que_faltan_para_el_verano - 1
La asignación anterior se puede compactar combinando el signo =
y la operación:
pesos_en_mi_billetera *= 2
dias_que_faltan_para_el_verano -= 1
Las listas pueden ser recorridas, visitando y haciendo algo con cada uno de sus elementos. Para ello contamos con la estructura de control for..in
, que lleva su generador delante de dos puntos (:
) y su cuerpo tabulado:
patrimonios_de_la_humanidad = [
{"declarado": 1979, "nombre": "Parque nacional Tikal", "pais": "Guatemala"},
{"declarado": 1983, "nombre": "Santuario histórico de Machu Picchu", "pais": "Perú"},
{"declarado": 1986, "nombre": "Parque nacional do Iguaçu", "pais": "Brasil"},
{"declarado": 1995, "nombre": "Parque nacional de Rapa Nui", "pais": "Chile"},
{"declarado": 2003, "nombre": "Quebrada de Humahuaca", "pais": "Argentina"}
]
cantidad_patrimonios_declarados_en_este_siglo = 0
for patrimonio in patrimonios_de_la_humanidad:
if patrimonio["declarado"] >= 2000:
cantidad_patrimonios_declarados_en_este_siglo += 1