A medida que tus programas crecen, repetir el mismo código en varios lugares se vuelve un problema:
difícil de mantener, fácil de equivocar. Las FUNCIONES resuelven eso: empaquetan un bloque de lógica con
un NOMBRE, para llamarlo cuantas veces quieras. Reciben datos (parámetros), hacen algo, y devuelven un
resultado (return). Son la herramienta principal para organizar código y no repetirte. Hoy aprendes a
definirlas y usarlas.
La máquina con receta
Definir y llamar
Se define con def, un nombre, paréntesis con los parámetros, y :. El cuerpo va indentado, y return
entrega el resultado:
def saludar(nombre): define una función llamada saludar con un parámetro nombre. Dentro, return
entrega el resultado a quien la llamó. La USAS escribiendo su nombre con los argumentos:
saludar("Sara"). El valor que devuelve lo puedes guardar en una variable (resultado = con_iva(10000))
o usarlo directo (print(con_iva(4000))). Cada llamada ejecuta la receta con los argumentos que le
pasaste.
return vs solo actuar
Por qué usar funciones
¿Qué hace return en una función y qué devuelve una función sin return?
Mini-reto
Crea funciones para Mi Bolsillo: 1) con_iva(valor) que devuelva el valor con IVA (× 1.19); 2)
descuento(valor, porcentaje) que devuelva el valor con un descuento aplicado; 3) resumen(nombre, valor)
que devuelva un string con f-string tipo "Café: 4,000"; 4) llámalas con distintos valores e imprime los
resultados. Bonus: una función anunciar(mensaje) que solo imprima (sin return) y confirma que devuelve
None.
Qué sigue
Ya defines funciones básicas. La próxima lección las hace más flexibles con los PARÁMETROS avanzados:
valores por defecto, argumentos por nombre, y *args/**kwargs para recibir un número variable de datos.
Con eso tus funciones se adaptan a muchos usos sin duplicarlas.