Ir al contenido

Funciones

Una funcion es una pieza de logica con nombre. Recibe datos, trabaja con ellos y puede devolver un resultado.

def duplicar(numero):
return numero * 2
resultado = duplicar(5)
print(resultado)

Salida:

10

Retorno: duplicar(5) devuelve 10.

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, Rafa
None

Retorno: si una funcion no tiene return, devuelve None.

def calcular_total(precio, cantidad):
return precio * cantidad
print(calcular_total(12, 3))

Salida:

36

precio y cantidad son parametros. 12 y 3 son argumentos.

def aplicar_descuento(precio, porcentaje=10):
descuento = precio * porcentaje / 100
return precio - descuento
print(aplicar_descuento(200))
print(aplicar_descuento(200, 25))

Salida:

180.0
150.0

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:

200
44.0
244.0

Retorno: resumen_compra(100, 2) devuelve la tupla (200, 44.0, 244.0).

def es_mayor_de_edad(edad):
return edad >= 18
print(es_mayor_de_edad(20))
print(es_mayor_de_edad(15))

Salida:

True
False

Son ideales para condiciones:

if es_mayor_de_edad(20):
print("Acceso permitido")
  • Una funcion deberia hacer una cosa clara.
  • Prefiere return cuando 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.
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.com
ejemplo.com

Retornos: ambas funciones devuelven str. Una limpia el texto; la otra extrae el dominio.