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 y finally.
  • 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

Módulo 2: Estructuras de Control

Módulo 3: Funciones y Módulos

Módulo 4: Estructuras de Datos

Módulo 5: Programación Orientada a Objetos

Módulo 6: Manejo de Archivos

Módulo 7: Manejo de Errores y Excepciones

Módulo 8: Temas Avanzados

Módulo 9: Pruebas y Depuración

Módulo 10: Desarrollo Web con Python

Módulo 11: Ciencia de Datos con Python

Módulo 12: Proyecto Final

© Copyright 2024. Todos los derechos reservados