Las funciones son bloques de código reutilizables que realizan una tarea específica. En Python, las funciones se definen utilizando la palabra clave def
, seguida del nombre de la función, paréntesis y dos puntos. Dentro de los paréntesis, se pueden incluir parámetros que la función puede recibir. El cuerpo de la función se escribe con una indentación.
Conceptos Clave
- Definición de una Función: Utiliza la palabra clave
def
para definir una función. - Parámetros y Argumentos: Los parámetros se definen en la declaración de la función, mientras que los argumentos son los valores que se pasan a la función cuando se llama.
- Valor de Retorno: Utiliza la palabra clave
return
para devolver un valor desde una función. - Alcance de Variables: Las variables definidas dentro de una función tienen un alcance local y no son accesibles fuera de la función.
Sintaxis Básica
def nombre_de_la_funcion(parametro1, parametro2): # Cuerpo de la función resultado = parametro1 + parametro2 return resultado
Ejemplo Práctico
Vamos a definir una función simple que suma dos números y devuelve el resultado.
def sumar(a, b): resultado = a + b return resultado # Llamada a la función print(sumar(3, 5)) # Salida: 8
Explicación del Código
- Definición de la Función:
def sumar(a, b):
define una función llamadasumar
que toma dos parámetrosa
yb
. - Cuerpo de la Función:
resultado = a + b
realiza la suma dea
yb
y almacena el resultado en la variableresultado
. - Valor de Retorno:
return resultado
devuelve el valor deresultado
al lugar donde se llamó la función. - Llamada a la Función:
print(sumar(3, 5))
llama a la funciónsumar
con los argumentos3
y5
, y luego imprime el resultado.
Ejercicios Prácticos
Ejercicio 1: Función de Saludo
Escribe una función llamada saludar
que tome un nombre como parámetro y devuelva un saludo personalizado.
def saludar(nombre): saludo = "Hola, " + nombre + "!" return saludo # Prueba la función print(saludar("Ana")) # Salida: Hola, Ana!
Ejercicio 2: Función de Factorial
Escribe una función llamada factorial
que tome un número entero n
y devuelva su factorial.
def factorial(n): if n == 0: return 1 else: return n * factorial(n - 1) # Prueba la función print(factorial(5)) # Salida: 120
Ejercicio 3: Función de Número Par
Escribe una función llamada es_par
que tome un número entero y devuelva True
si el número es par y False
si es impar.
def es_par(numero): return numero % 2 == 0 # Prueba la función print(es_par(4)) # Salida: True print(es_par(7)) # Salida: False
Soluciones a los Ejercicios
Solución al Ejercicio 1
def saludar(nombre): saludo = "Hola, " + nombre + "!" return saludo print(saludar("Ana")) # Salida: Hola, Ana!
Solución al Ejercicio 2
def factorial(n): if n == 0: return 1 else: return n * factorial(n - 1) print(factorial(5)) # Salida: 120
Solución al Ejercicio 3
def es_par(numero): return numero % 2 == 0 print(es_par(4)) # Salida: True print(es_par(7)) # Salida: False
Resumen
En esta sección, hemos aprendido a definir funciones en Python, incluyendo cómo utilizar parámetros y devolver valores. También hemos explorado el alcance de las variables dentro de las funciones. Las funciones son una herramienta poderosa para organizar y reutilizar el código, y son fundamentales para escribir programas eficientes y mantenibles.
En la próxima sección, profundizaremos en los argumentos de función, incluyendo argumentos por defecto y argumentos con nombre.
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