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,elseyfinally.
- 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
