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
