Modulo 5: Funciones y Modularización del Código
▸ python-desde-cero/funciones-modularizacion-del-codigo
@yoezequiel 07-03-2025
1️⃣8️⃣ ¿Qué son las funciones y por qué usarlas?
🔹 ¿Qué es una función?
- Una función es un bloque de código reutilizable que realiza una tarea específica.
- Se define una vez y se puede llamar múltiples veces en diferentes partes del programa.
🔹 Beneficios de usar funciones
✅ Evitan la repetición de código.
✅ Facilitan la lectura y mantenimiento del código.
✅ Permiten dividir un problema en partes más pequeñas y manejables.
✅ Fomentan la reutilización del código en diferentes programas.
🔹 Ejemplo de código sin funciones (mala práctica)
print("Hola, Juan")
print("Hola, María")
print("Hola, Pedro")
- Problema: Si queremos saludar a más personas, el código crece innecesariamente.
🔹 Ejemplo con funciones (buena práctica)
def saludar(nombre):
print(f"Hola, {nombre}")
saludar("Juan")
saludar("María")
saludar("Pedro")
- Beneficio: Ahora podemos llamar a
saludar()
tantas veces como sea necesario sin repetir código.
1️⃣9️⃣ Definiendo funciones con def
🔹 Sintaxis básica de una función en Python
def nombre_de_la_funcion():
# Código dentro de la función
🔹 Ejemplo de una función básica
def mensaje():
print("¡Bienvenido al curso de Python!")
mensaje() # Llamar a la función
🔹 Ejemplo con función que recibe parámetros
def saludar(nombre):
print(f"Hola, {nombre}!")
saludar("Ana")
saludar("Carlos")
🔹 Reglas para definir funciones
- El nombre de la función debe ser descriptivo y seguir las reglas de los identificadores de Python.
- Se debe usar
snake_case
(mi_funcion
) para los nombres. - Los paréntesis
()
son obligatorios, incluso si la función no recibe parámetros. - El bloque de código debe estar indentado correctamente.
2️⃣0️⃣ Parámetros y argumentos de una función
🔹 Parámetros vs. Argumentos
- Parámetros: Variables que se definen en la función y actúan como “espacios reservados” para los valores.
- Argumentos: Valores concretos que se envían a la función al momento de llamarla.
🔹 Ejemplo
def sumar(a, b): # a y b son parámetros
print(f"La suma es: {a + b}")
sumar(5, 3) # 5 y 3 son argumentos
sumar(10, 7)
🔹 Tipos de argumentos en Python
- Argumentos posicionales: Se pasan en el orden en que la función los espera.
- Argumentos nombrados: Se pasan especificando el nombre del parámetro.
def restar(a, b): print(f"La resta es: {a - b}") restar(b=10, a=5) # Se puede cambiar el orden
2️⃣1️⃣ Retorno de valores con return
🔹 ¿Qué es return
y para qué sirve?
- Permite que una función devuelva un resultado que luego puede usarse en otras partes del código.
🔹 Ejemplo sin return
(mala práctica)
def cuadrado(numero):
print(numero ** 2) # Solo imprime, no devuelve nada
cuadrado(4) # No se puede reutilizar el resultado
🔹 Ejemplo con return
(buena práctica)
def cuadrado(numero):
return numero ** 2 # Devuelve el valor
resultado = cuadrado(4)
print(f"El cuadrado de 4 es {resultado}") # Ahora el valor puede usarse
2️⃣2️⃣ Funciones con valores por defecto y parámetros opcionales
🔹 ¿Qué es un parámetro con valor por defecto?
- Se asigna un valor por defecto en la definición de la función.
- Si el usuario no proporciona un argumento, se usa el valor por defecto.
🔹 Ejemplo con valores por defecto
def saludar(nombre="Invitado"):
print(f"Hola, {nombre}!")
saludar() # Usa "Invitado"
saludar("Carlos") # Usa "Carlos"
🔹 Ejemplo con múltiples parámetros y valores por defecto
def informacion(nombre, edad=18, ciudad="Buenos Aires"):
print(f"Nombre: {nombre}, Edad: {edad}, Ciudad: {ciudad}")
informacion("Ana") # Solo nombre
informacion("Carlos", 25) # Nombre y edad
informacion("Sofía", 30, "Córdoba") # Todos los valores
2️⃣3️⃣ Variables locales y globales
🔹 Variable local
- Definida dentro de una función.
- Solo existe y se puede usar dentro de esa función.
🔹 Ejemplo de variable local
def mostrar_mensaje():
mensaje = "Hola desde dentro de la función" # Variable local
print(mensaje)
mostrar_mensaje()
# print(mensaje) # ❌ Esto daría error porque "mensaje" no existe fuera de la función
🔹 Variable global
- Definida fuera de cualquier función.
- Puede ser usada en cualquier parte del programa.
🔹 Ejemplo de variable global
mensaje = "Hola desde fuera de la función" # Variable global
def mostrar_mensaje():
print(mensaje) # Se puede acceder a la variable global
mostrar_mensaje()
🔹 Modificar una variable global dentro de una función (global
)
contador = 0 # Variable global
def incrementar():
global contador # Se indica que queremos modificar la variable global
contador += 1
incrementar()
print(contador) # Salida: 1
⚠ Precaución: Usar demasiadas variables globales puede hacer que el código sea difícil de mantener y depurar.