En este tema, aprenderemos sobre las excepciones en Python, una característica esencial para manejar errores y situaciones inesperadas en nuestros programas. Las excepciones nos permiten gestionar errores de manera controlada, evitando que nuestro programa se detenga abruptamente.
Objetivos
- Comprender qué son las excepciones y por qué son importantes.
- Aprender a utilizar las sentencias
try
,except
,else
yfinally
. - Conocer las excepciones más comunes en Python.
- Practicar con ejemplos y ejercicios para manejar excepciones.
¿Qué es una Excepción?
Una excepción es un evento que ocurre durante la ejecución de un programa y que interrumpe el flujo normal de las instrucciones. Las excepciones son útiles para manejar errores que pueden ocurrir en tiempo de ejecución, como intentar dividir por cero o acceder a un índice fuera de los límites de una lista.
Ejemplo de Excepción
# Intentar dividir por cero numerador = 10 denominador = 0 resultado = numerador / denominador # Esto generará una excepción ZeroDivisionError
En el ejemplo anterior, intentar dividir 10
por 0
generará una excepción ZeroDivisionError
, lo que detendrá el programa.
Manejo de Excepciones
Python proporciona varias palabras clave para manejar excepciones: try
, except
, else
y finally
.
Sintaxis Básica
try: # Código que puede generar una excepción resultado = numerador / denominador except ZeroDivisionError: # Código que se ejecuta si ocurre una excepción print("Error: No se puede dividir por cero.") else: # Código que se ejecuta si no ocurre ninguna excepción print("El resultado es:", resultado) finally: # Código que se ejecuta siempre, ocurra o no una excepción print("Operación completada.")
Explicación de la Sintaxis
- try: Bloque de código donde se coloca el código que puede generar una excepción.
- except: Bloque de código que se ejecuta si ocurre una excepción en el bloque
try
. - else: Bloque de código que se ejecuta si no ocurre ninguna excepción en el bloque
try
. - finally: Bloque de código que se ejecuta siempre, independientemente de si ocurre una excepción o no.
Ejemplo Completo
numerador = 10 denominador = 0 try: resultado = numerador / denominador except ZeroDivisionError: print("Error: No se puede dividir por cero.") else: print("El resultado es:", resultado) finally: print("Operación completada.")
Excepciones Comunes en Python
A continuación, se presenta una tabla con algunas de las excepciones más comunes en Python:
Excepción | Descripción |
---|---|
ZeroDivisionError |
Ocurre cuando se intenta dividir por cero. |
IndexError |
Ocurre cuando se intenta acceder a un índice fuera de los límites de una lista. |
KeyError |
Ocurre cuando se intenta acceder a una clave que no existe en un diccionario. |
TypeError |
Ocurre cuando se realiza una operación con tipos de datos incompatibles. |
ValueError |
Ocurre cuando una función recibe un argumento con el tipo correcto pero valor inapropiado. |
FileNotFoundError |
Ocurre cuando se intenta abrir un archivo que no existe. |
Ejercicios Prácticos
Ejercicio 1: Manejo de Excepciones Básico
Escribe un programa que solicite al usuario dos números y realice la división. Maneja la excepción ZeroDivisionError
para evitar que el programa se detenga si el usuario introduce un denominador de cero.
# Solución try: numerador = float(input("Introduce el numerador: ")) denominador = float(input("Introduce el denominador: ")) resultado = numerador / denominador except ZeroDivisionError: print("Error: No se puede dividir por cero.") except ValueError: print("Error: Por favor, introduce un número válido.") else: print("El resultado es:", resultado) finally: print("Operación completada.")
Ejercicio 2: Manejo de Múltiples Excepciones
Escribe un programa que solicite al usuario una lista de números y un índice. El programa debe imprimir el número en la posición indicada por el índice. Maneja las excepciones IndexError
y ValueError
.
# Solución try: lista = [int(x) for x in input("Introduce una lista de números separados por espacios: ").split()] indice = int(input("Introduce el índice: ")) print("El número en la posición", indice, "es:", lista[indice]) except IndexError: print("Error: El índice está fuera de los límites de la lista.") except ValueError: print("Error: Por favor, introduce un número válido.") finally: print("Operación completada.")
Resumen
En esta sección, hemos aprendido qué son las excepciones y cómo manejarlas en Python utilizando las sentencias try
, except
, else
y finally
. También hemos visto algunas de las excepciones más comunes y hemos practicado con ejemplos y ejercicios. Manejar excepciones es una habilidad crucial para escribir programas robustos y confiables.
En el próximo tema, profundizaremos en el manejo de excepciones, incluyendo cómo crear nuestras propias excepciones personalizadas.
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