En Python, las funciones pueden recibir datos de entrada a través de argumentos. Los argumentos permiten que las funciones sean más flexibles y reutilizables. En esta sección, exploraremos los diferentes tipos de argumentos que se pueden utilizar en Python, cómo se definen y cómo se utilizan.
Tipos de Argumentos
- Argumentos Posicionales
- Argumentos Nombrados (o por palabra clave)
- Argumentos por Defecto
- Argumentos Arbitrarios
- Argumentos Posicionales
Los argumentos posicionales son los más comunes y se pasan a la función en el mismo orden en que se definen.
def greet(name, age):
print(f"Hola, mi nombre es {name} y tengo {age} años.")
# Llamada a la función con argumentos posicionales
greet("Alice", 30)Explicación:
nameyageson argumentos posicionales.- La función
greetse llama con "Alice" y 30, que se asignan anameyagerespectivamente.
- Argumentos Nombrados (o por palabra clave)
Los argumentos nombrados se pasan a la función utilizando el nombre del parámetro, lo que permite especificar los argumentos en cualquier orden.
def greet(name, age):
print(f"Hola, mi nombre es {name} y tengo {age} años.")
# Llamada a la función con argumentos nombrados
greet(age=30, name="Alice")Explicación:
age=30yname="Alice"son argumentos nombrados.- El orden de los argumentos no importa cuando se utilizan nombres de parámetros.
- Argumentos por Defecto
Los argumentos por defecto permiten que una función asigne un valor predeterminado a un parámetro si no se proporciona un valor durante la llamada a la función.
def greet(name, age=25):
print(f"Hola, mi nombre es {name} y tengo {age} años.")
# Llamada a la función con y sin el argumento por defecto
greet("Alice")
greet("Bob", 30)Explicación:
age=25es un argumento por defecto.- Si
ageno se proporciona, se utiliza el valor predeterminado de 25.
- Argumentos Arbitrarios
A veces, no se sabe de antemano cuántos argumentos se pasarán a una función. Python permite manejar estos casos con argumentos arbitrarios.
Argumentos Posicionales Arbitrarios
Se utilizan *args para pasar un número variable de argumentos posicionales.
def greet(*names):
for name in names:
print(f"Hola, {name}!")
# Llamada a la función con múltiples argumentos
greet("Alice", "Bob", "Charlie")Explicación:
*namesrecoge todos los argumentos posicionales en una tupla.- La función puede iterar sobre
namespara procesar cada nombre.
Argumentos Nombrados Arbitrarios
Se utilizan **kwargs para pasar un número variable de argumentos nombrados.
def greet(**info):
for key, value in info.items():
print(f"{key}: {value}")
# Llamada a la función con múltiples argumentos nombrados
greet(name="Alice", age=30, city="New York")Explicación:
**inforecoge todos los argumentos nombrados en un diccionario.- La función puede iterar sobre
infopara procesar cada par clave-valor.
Ejercicios Prácticos
Ejercicio 1: Argumentos Posicionales y Nombrados
Escribe una función describe_person que acepte tres parámetros: name, age y city. La función debe imprimir una descripción de la persona. Llama a la función utilizando tanto argumentos posicionales como nombrados.
def describe_person(name, age, city):
print(f"{name} tiene {age} años y vive en {city}.")
# Llamada a la función
describe_person("Alice", 30, "New York")
describe_person(age=25, city="Los Angeles", name="Bob")Ejercicio 2: Argumentos por Defecto
Escribe una función calculate_area que acepte dos parámetros: length y width, con un valor por defecto de width igual a 1. La función debe calcular y devolver el área de un rectángulo.
def calculate_area(length, width=1):
return length * width
# Llamada a la función
print(calculate_area(5)) # Output: 5
print(calculate_area(5, 3)) # Output: 15Ejercicio 3: Argumentos Arbitrarios
Escribe una función summarize que acepte un número variable de argumentos posicionales y devuelva su suma.
def summarize(*numbers):
return sum(numbers)
# Llamada a la función
print(summarize(1, 2, 3)) # Output: 6
print(summarize(4, 5, 6, 7)) # Output: 22Resumen
En esta sección, hemos aprendido sobre los diferentes tipos de argumentos en Python: posicionales, nombrados, por defecto y arbitrarios. Estos conceptos son fundamentales para escribir funciones flexibles y reutilizables. Asegúrate de practicar con los ejercicios proporcionados para reforzar tu comprensión.
En la próxima sección, exploraremos las Funciones Lambda, que son funciones anónimas y de una sola línea en Python.
Curso de Programación en Python
Módulo 1: Introducción a Python
- Introducción a Python
- Configuración del Entorno de Desarrollo
- Sintaxis de Python y Tipos de Datos Básicos
- Variables y Constantes
- Entrada y Salida Básica
Módulo 2: Estructuras de Control
- Sentencias Condicionales
- Bucles: for y while
- Herramientas de Control de Flujo
- Comprensiones de Listas
Módulo 3: Funciones y Módulos
- Definición de Funciones
- Argumentos de Función
- Funciones Lambda
- Módulos y Paquetes
- Visión General de la Biblioteca Estándar
Módulo 4: Estructuras de Datos
Módulo 5: Programación Orientada a Objetos
Módulo 6: Manejo de Archivos
- Lectura y Escritura de Archivos
- Trabajo con Archivos CSV
- Manejo de Datos JSON
- Operaciones de Archivos y Directorios
Módulo 7: Manejo de Errores y Excepciones
- Introducción a las Excepciones
- Manejo de Excepciones
- Lanzamiento de Excepciones
- Excepciones Personalizadas
Módulo 8: Temas Avanzados
- Decoradores
- Generadores
- Administradores de Contexto
- Concurrencia: Hilos y Procesos
- Asyncio para Programación Asíncrona
Módulo 9: Pruebas y Depuración
- Introducción a las Pruebas
- Pruebas Unitarias con unittest
- Desarrollo Guiado por Pruebas
- Técnicas de Depuración
- Uso de pdb para Depuración
Módulo 10: Desarrollo Web con Python
- Introducción al Desarrollo Web
- Fundamentos del Framework Flask
- Construcción de APIs REST con Flask
- Introducción a Django
- Construcción de Aplicaciones Web con Django
Módulo 11: Ciencia de Datos con Python
- Introducción a la Ciencia de Datos
- NumPy para Computación Numérica
- Pandas para Manipulación de Datos
- Matplotlib para Visualización de Datos
- Introducción al Aprendizaje Automático con scikit-learn
