Funciones
Una funcion es una pieza de logica con nombre. Recibe datos, trabaja con ellos y puede devolver un resultado.
Funcion minima
Sección titulada «Funcion minima»def duplicar(numero): return numero * 2
resultado = duplicar(5)print(resultado)Salida:
10Retorno: duplicar(5) devuelve 10.
return no es print
Sección titulada «return no es print»def crear_saludo(nombre): return f"Hola, {nombre}"
mensaje = crear_saludo("Rafa")print(mensaje)La funcion devuelve un texto. print() solo lo muestra.
def mostrar_saludo(nombre): print(f"Hola, {nombre}")
valor = mostrar_saludo("Rafa")print(valor)Salida:
Hola, RafaNoneRetorno: si una funcion no tiene return, devuelve None.
Parametros y argumentos
Sección titulada «Parametros y argumentos»def calcular_total(precio, cantidad): return precio * cantidad
print(calcular_total(12, 3))Salida:
36precio y cantidad son parametros. 12 y 3 son argumentos.
Valores por defecto
Sección titulada «Valores por defecto»def aplicar_descuento(precio, porcentaje=10): descuento = precio * porcentaje / 100 return precio - descuento
print(aplicar_descuento(200))print(aplicar_descuento(200, 25))Salida:
180.0150.0Retornar varios valores
Sección titulada «Retornar varios valores»En Python puedes retornar una tupla.
def resumen_compra(precio, cantidad): subtotal = precio * cantidad iva = subtotal * 0.22 total = subtotal + iva return subtotal, iva, total
subtotal, iva, total = resumen_compra(100, 2)
print(subtotal)print(iva)print(total)Salida:
20044.0244.0Retorno: resumen_compra(100, 2) devuelve la tupla (200, 44.0, 244.0).
Funciones que devuelven booleanos
Sección titulada «Funciones que devuelven booleanos»def es_mayor_de_edad(edad): return edad >= 18
print(es_mayor_de_edad(20))print(es_mayor_de_edad(15))Salida:
TrueFalseSon ideales para condiciones:
if es_mayor_de_edad(20): print("Acceso permitido")Recomendaciones
Sección titulada «Recomendaciones»- Una funcion deberia hacer una cosa clara.
- Prefiere
returncuando necesitas reutilizar el resultado. - Usa nombres con verbos:
calcular_total,obtener_usuario,validar_email. - Evita funciones gigantes: si no puedes explicar que hace en una frase, probablemente necesita dividirse.
Practica
Sección titulada «Practica»def normalizar_email(email): return email.strip().lower()
def dominio_del_email(email): email_limpio = normalizar_email(email) partes = email_limpio.split("@") return partes[-1]
print(normalizar_email(" Persona@Ejemplo.COM "))print(dominio_del_email(" Persona@Ejemplo.COM "))Salida:
persona@ejemplo.comejemplo.comRetornos: ambas funciones devuelven str. Una limpia el texto; la otra extrae el dominio.