Funciones: organiza y reutiliza tu código
Una función es un bloque de código con nombre que puedes ejecutar tantas veces como quieras. Sin funciones, los programas se convierten en copias repetidas del mismo código. Con funciones, defines la lógica una vez y la usas donde la necesites.
Definir y llamar a una función
def saludar():
print("Hola desde la función")
print("Esta línea también pertenece a saludar()")
saludar() # esto la ejecuta
saludar() # puedes llamarla cuantas veces quieras
def define la función. El nombre va seguido de paréntesis y dos puntos. El cuerpo va indentado.
Parámetros y argumentos
def saludar(nombre):
print(f"Hola, {nombre}.")
saludar("María")
saludar("Carlos")
saludar("Joaquín")
Los parámetros son variables que la función espera recibir. Los argumentos son los valores que le pasas cuando la llamas.
Return: devolver un resultado
def sumar(a, b):
resultado = a + b
return resultado
total = sumar(5, 3)
print(total) # 8
# O directamente:
print(sumar(10, 20)) # 30
Sin return, la función devuelve None. Con return, devuelve un valor que puedes usar fuera.
Parámetros con valor por defecto
def potencia(base, exponente=2):
return base ** exponente
print(potencia(3)) # 9 (3 elevado a 2, por defecto)
print(potencia(3, 3)) # 27 (3 elevado a 3)
Una función puede llamar a otras
def calcular_iva(precio):
return precio * 0.21
def precio_final(precio_base):
iva = calcular_iva(precio_base)
return precio_base + iva
print(f"{precio_final(100):.2f} €") # 121.00 €
print(f"{precio_final(49.90):.2f} €") # 60.38 €
Docstrings: documenta tus funciones
def calcular_imc(peso, altura):
"""
Calcula el Índice de Masa Corporal.
peso en kg, altura en metros.
Devuelve un float.
"""
return peso / (altura ** 2)
imc = calcular_imc(70, 1.75)
print(f"IMC: {imc:.1f}")
Ejercicio práctico
Crea calculadora_v2.py con funciones separadas para cada operación:
def sumar(a, b): return a + b
def restar(a, b): return a - b
def multiplicar(a, b): return a * b
def dividir(a, b):
if b == 0:
return "Error: división por cero"
return a / b
a = float(input("Primer número: "))
b = float(input("Segundo número: "))
op = input("Operación (+, -, *, /): ")
if op == "+": print(sumar(a, b))
elif op == "-": print(restar(a, b))
elif op == "*": print(multiplicar(a, b))
elif op == "/": print(dividir(a, b))
else: print("Operación no reconocida")
Checklist antes de marcar completada
- Puedes definir una función con
def, parámetros yreturn. - Entiendes la diferencia entre parámetro y argumento.
- Sabes cuándo usar valores por defecto en los parámetros.
- Has ejecutado
calculadora_v2.pycon las 4 operaciones.
Con variables, condiciones, bucles y funciones ya tienes los cuatro cimientos de cualquier programa. En la próxima lección los combinamos con listas y diccionarios para trabajar con colecciones de datos reales.
📝 Comprueba lo aprendido
Responde estas 4 preguntas y acierta al menos el 60% para desbloquear el botón "Marcar como completada".