Semestre 02, 2026
Un programa calcula el área de un rectángulo en tres puntos distintos.
area1 = base1 * altura1
print("Área:", area1)
area2 = base2 * altura2
print("Área:", area2)
area3 = base3 * altura3
print("Área:", area3)
Escribir el código una sola vez y reutilizarlo cuantas veces sea necesario.
Eso es exactamente lo que hacen las funciones.
Una función es un bloque de código con nombre que realiza una tarea específica. Se define una vez y se puede usar múltiples veces.
El nombre permite invocar todo ese bloque con una sola línea.
print("Hola")
input("Escribe algo: ")
int("42")
float("3.14")
Todas son funciones que Python ya trae incorporadas. Se usan escribiendo su nombre seguido de paréntesis.
Además de las incorporadas, el programador puede crear las suyas.
Para crear una función se usa la palabra clave def.
def nombre_funcion():
# bloque de código
def saludar():
print("¡Hola, bienvenido!")
Esto define la función, pero no la ejecuta. El código de adentro no corre todavía.
Para ejecutarla se escribe su nombre seguido de paréntesis.
def saludar():
print("¡Hola, bienvenido!")
saludar()
¡Hola, bienvenido!
saludar()
saludar()
saludar()
¡Hola, bienvenido!
¡Hola, bienvenido!
¡Hola, bienvenido!
El mismo código se ejecutó tres veces sin haberlo escrito tres veces.
Un parámetro es una variable que la función recibe cuando se llama. Permite que la función trabaje con datos distintos cada vez.
def nombre_funcion(parametro):
# usar parametro aquí
def saludar(nombre):
print("¡Hola,", nombre, "!")
saludar("María")
saludar("Carlos")
def saludar(nombre):
print("¡Hola,", nombre, "!")
saludar("María")
saludar("Carlos")
La palabra dentro de los paréntesis es el parámetro. Anuncia que la función necesita un dato para poder trabajar.
def saludar(nombre):
print("¡Hola,", nombre, "!")
saludar("María")
saludar("Carlos")
Dentro de la función, el parámetro se usa como cualquier otra variable. Su valor cambia en cada llamada.
def saludar(nombre):
print("¡Hola,", nombre, "!")
saludar("María")
saludar("Carlos")
El valor entre paréntesis es el argumento. Al llamar la función, el parámetro toma ese valor y la salida es ¡Hola, María!
def saludar(nombre):
print("¡Hola,", nombre, "!")
saludar("María")
saludar("Carlos")
Cada llamada pasa un argumento distinto y produce un resultado distinto, con una sola definición escrita.
| Término | Dónde aparece | Ejemplo |
|---|---|---|
| Parámetro | En la definición de la función | def saludar(nombre): |
| Argumento | En la llamada a la función | saludar("María") |
El parámetro es el espacio vacío y el argumento es lo que se coloca en ese espacio.
Una función puede recibir más de un parámetro, separados por comas.
def sumar(a, b):
resultado = a + b
print("La suma es:", resultado)
sumar(3, 5)
sumar(10, 20)
La suma es: 8
La suma es: 30
def presentar(nombre, edad):
print("Nombre:", nombre)
print("Edad:", edad)
presentar("Luis", 20)
Los argumentos se asignan en el mismo orden en que se declararon los parámetros. Al escribir presentar(20, "Luis") los valores quedan invertidos y el programa imprime datos sin sentido.
return devuelve un valor al lugar donde se llamó la función. Ese valor puede guardarse en una variable y usarse después.
Hasta ahora las funciones solo imprimían resultados en pantalla.
Solo imprime
def sumar(a, b):
print(a + b)
sumar(3, 5)
Devuelve el valor
def sumar(a, b):
return a + b
resultado = sumar(3, 5)
La primera versión muestra el 8 y lo pierde. La segunda lo entrega al programa, que puede guardarlo, operarlo o imprimirlo cuando convenga.
| Característica | print dentro | return |
|---|---|---|
| Guardar el resultado | No | Sí |
| Usarlo en otra operación | No | Sí |
| Decidir después si se imprime | No | Sí |
| Reutilizar la función en otro programa | Difícil | Directo |
def calcular_area(base, altura):
return base * altura
area = calcular_area(5, 3)
print("El área es:", area)
print("El doble del área es:", area * 2)
def calcular_area(base, altura):
return base * altura
area = calcular_area(5, 3)
print("El área es:", area)
print("El doble del área es:", area * 2)
La función recibe dos parámetros. El nombre describe la tarea, así que al leer la llamada se entiende qué hace sin revisar su interior.
def calcular_area(base, altura):
return base * altura
area = calcular_area(5, 3)
print("El área es:", area)
print("El doble del área es:", area * 2)
La fórmula vive en un solo lugar. El resultado no se imprime, se entrega a quien hizo la llamada.
def calcular_area(base, altura):
return base * altura
area = calcular_area(5, 3)
print("El área es:", area)
print("El doble del área es:", area * 2)
La llamada se comporta como un valor. Python ejecuta la función, obtiene 15 y lo guarda en la variable.
def calcular_area(base, altura):
return base * altura
area = calcular_area(5, 3)
print("El área es:", area)
print("El doble del área es:", area * 2)
El valor devuelto se usa las veces que haga falta. Aquí se imprime y luego se multiplica, algo imposible si la función solo hubiera impreso.
Cuando Python encuentra un return, la función termina de inmediato.
def verificar(numero):
if numero < 0:
return "El número es negativo"
return "El número es positivo o cero"
print(verificar(-5))
print(verificar(10))
def area_rectangulo(base, altura):
return base * altura
a1 = area_rectangulo(5, 3)
a2 = area_rectangulo(8, 2)
a3 = area_rectangulo(10, 4)
print("Área 1:", a1)
print("Área 2:", a2)
print("Área 3:", a3)
def sumar(a, b):
return a + b
def restar(a, b):
return a - b
def multiplicar(a, b):
return a * b
x = float(input("Primer número: "))
y = float(input("Segundo número: "))
print("Suma:", sumar(x, y))
print("Resta:", restar(x, y))
print("Multiplicación:", multiplicar(x, y))
def tabla_multiplicar(numero):
for i in range(1, 11):
print(numero, "x", i, "=", numero * i)
tabla_multiplicar(3)
tabla_multiplicar(7)
Una función puede contener cualquier estructura vista hasta ahora, como if, while o for.
Dentro de una función se puede llamar a otra ya definida.
def sumar(a, b):
return a + b
def promedio(a, b):
return sumar(a, b) / 2
print(promedio(8, 6))
Una variable creada dentro de una función solo existe dentro de ella. Fuera de la función no se puede usar.
def calcular():
resultado = 100
print("Dentro:", resultado)
calcular()
print("Fuera:", resultado) # error
saludar()
def saludar():
print("Hola")
Python lee el archivo de arriba hacia abajo, así que en esa línea la función todavía no existe y el programa falla.
saludar # no ejecuta nada
saludar() # ejecuta la función
Sin paréntesis solo se menciona la función. No hay mensaje de error, el programa simplemente no hace nada.
def sumar(a, b):
return a + b
sumar(5) # falta un argumento
sumar(5, 3, 2) # sobra un argumento
La cantidad de argumentos debe coincidir con la cantidad de parámetros declarados.
def multiplicar(a, b):
a * b
resultado = multiplicar(3, 4)
print(resultado) # None
La multiplicación se calcula y se descarta. Toda función sin return devuelve None de forma automática.
def mostrar_doble(x):
print(x * 2)
resultado = mostrar_doble(5)
print(resultado) # None
print muestra el valor en pantalla pero no lo devuelve, así que la variable termina valiendo None. Es el error más frecuente del tema.
La primera línea del bloque puede ser un texto que explique la tarea.
def calcular_area(base, altura):
"""Devuelve el área de un rectángulo."""
return base * altura
Quien lea el programa entiende la función sin analizar su contenido.
Las respuestas definen el nombre, los parámetros y el return.