Mostrando entradas con la etiqueta ExcepcionesPython. Mostrar todas las entradas
Mostrando entradas con la etiqueta ExcepcionesPython. Mostrar todas las entradas

martes, 25 de febrero de 2025

馃憠 Ejercicios Pr谩cticos de Python: Manejo de Excepciones y Errores

Despu茅s de aprender a manejar errores y excepciones en Python, es hora de practicar con ejercicios reales y 煤tiles.

Hoy resolveremos ejercicios sobre:
✔️ Uso de try-except para manejar errores
✔️ Captura de errores espec铆ficos (ValueError, ZeroDivisionError, etc.)
✔️ Uso de finally para cerrar recursos
✔️ Creaci贸n de excepciones personalizadas

馃搶 Cada ejercicio incluye el c贸digo, explicaci贸n y prueba de salida.


1️⃣ Ejercicio: Evitar Fallos al Ingresar un N煤mero

馃搷 Objetivo: Crear un programa que solicite un n煤mero al usuario y maneje el error si introduce un texto.

馃敼 C贸digo:

while True: try: numero = int(input("Introduce un n煤mero: ")) print(f"El doble de {numero} es {numero * 2}") break # Salir del bucle si la entrada es correcta except ValueError: print("❌ Error: Debes ingresar un n煤mero v谩lido. Int茅ntalo de nuevo.")

Se usa un bucle while True para repetir hasta que la entrada sea v谩lida.
try-except evita que el programa se bloquee si el usuario introduce un texto.

馃搶 Ejemplo de salida:

Introduce un n煤mero: hola ❌ Error: Debes ingresar un n煤mero v谩lido. Int茅ntalo de nuevo. Introduce un n煤mero: 5 El doble de 5 es 10

2️⃣ Ejercicio: Manejo de Divisi贸n por Cero

馃搷 Objetivo: Escribir un programa que divida dos n煤meros y maneje el error si el denominador es 0.

馃敼 C贸digo:

try: num1 = int(input("Introduce el numerador: ")) num2 = int(input("Introduce el denominador: ")) resultado = num1 / num2 print(f"Resultado: {resultado}") except ZeroDivisionError: print("❌ Error: No puedes dividir por cero.") except ValueError: print("❌ Error: Debes ingresar n煤meros v谩lidos.")

ZeroDivisionError se usa para capturar intentos de divisi贸n por 0.
ValueError captura errores cuando se ingresan caracteres en lugar de n煤meros.

馃搶 Ejemplo de salida:

Introduce el numerador: 10 Introduce el denominador: 0 Error: No puedes dividir por cero.

3️⃣ Ejercicio: Controlar Acceso a una Lista

馃搷 Objetivo: Escribir un programa que acceda a un 铆ndice de una lista y maneje errores de 铆ndice fuera de rango.

馃敼 C贸digo:

numeros = [10, 20, 30, 40, 50] try: indice = int(input("Introduce un 铆ndice (0-4): ")) print(f"El valor en la posici贸n {indice} es {numeros[indice]}") except IndexError: print("❌ Error: 脥ndice fuera de rango. Debes elegir entre 0 y 4.") except ValueError: print("❌ Error: Ingresa un n煤mero v谩lido.")

馃搶 Ejemplo de salida:

Introduce un 铆ndice (0-4): 6Error: 脥ndice fuera de rango. Debes elegir entre 0 y 4.

4️⃣ Ejercicio: Uso de finally para Cerrar Recursos

馃搷 Objetivo: Leer un archivo y asegurarse de cerrarlo correctamente con finally.

馃敼 C贸digo:

try: archivo = open("datos.txt", "r") contenido = archivo.read() print(contenido) except FileNotFoundError: print("❌ Error: El archivo no existe.") finally: print("馃搶 Operaci贸n finalizada.")

馃搶 Si el archivo datos.txt no existe, el programa mostrar谩:

Error: El archivo no existe. 馃搶 Operaci贸n finalizada.

finally asegura que siempre se cierre el archivo, incluso si hay un error.


5️⃣ Ejercicio: Crear una Excepci贸n Personalizada

馃搷 Objetivo: Definir una excepci贸n personalizada para validar edades.

馃敼 C贸digo:

class EdadInvalidaError(Exception): pass def verificar_edad(edad): if edad < 18: raise EdadInvalidaError("❌ Error: Debes ser mayor de edad.") print("✅ Acceso permitido.") try: edad = int(input("Introduce tu edad: ")) verificar_edad(edad) except EdadInvalidaError as e: print(e) except ValueError: print("❌ Error: Ingresa un n煤mero v谩lido.")

馃搶 Si el usuario ingresa una edad menor a 18:

Introduce tu edad: 15 Error: Debes ser mayor de edad.

raise lanza una excepci贸n personalizada.


馃殌 Conclusi贸n

✅ Hoy hemos resuelto ejercicios con manejo de excepciones en Python.
✅ Estos ejercicios ayudan a evitar que el programa se bloquee con errores inesperados.
✅ Practica modificando el c贸digo para entenderlo mejor.

馃搶 Pr贸ximo post: M谩s ejercicios avanzados con manejo de archivos y bases de datos en Python.

馃搨 Descarga los ejercicios en mi GitHub: github.com/josecodetech

馃帴 Aprende con mis videos en YouTube: https://www.youtube.com/@josecodetech/

馃挰 ¿Has tenido errores inesperados en Python? Comparte tu experiencia en los comentarios.



domingo, 23 de febrero de 2025

馃憠 Manejo de Excepciones y Errores en Python: C贸mo Evitar Fallos en tu C贸digo

A medida que escribimos c贸digo m谩s complejo, es inevitable que aparezcan errores. En lugar de dejar que nuestro programa se bloquee, podemos manejar estos errores de manera controlada usando excepciones en Python.

Hoy aprender谩s:
✔️ ¿Qu茅 son las excepciones y por qu茅 manejarlas?
✔️ C贸mo usar try, except, finally
✔️ Capturar errores espec铆ficos en Python
✔️ Crear nuestras propias excepciones
✔️ Ejemplo pr谩ctico explicando su uso


1️⃣ ¿Qu茅 son las Excepciones en Python?

Una excepci贸n es un error que ocurre mientras el programa se est谩 ejecutando. Si no manejamos las excepciones, el programa se detendr谩 abruptamente.

馃搶 Ejemplo de error sin manejo de excepciones:

numero = int(input("Introduce un n煤mero: ")) print(f"El doble es: {numero * 2}")

馃搶 Si el usuario introduce un texto en lugar de un n煤mero, el programa mostrar谩 un error:

ValueError: invalid literal for int() with base 10

Para evitar que el programa se bloquee, usamos try y except.


2️⃣ C贸mo Usar try y except para Manejar Errores

El bloque try intenta ejecutar el c贸digo y, si ocurre un error, el bloque except lo captura y muestra un mensaje en lugar de interrumpir el programa.

馃敼 Ejemplo b谩sico de manejo de excepciones:

try: numero = int(input("Introduce un n煤mero: ")) print(f"El doble es: {numero * 2}") except ValueError: print("❌ Error: Debes ingresar un n煤mero v谩lido.")

✅ Si el usuario introduce un n煤mero, el c贸digo funciona normalmente.
✅ Si introduce texto, el except captura el error y muestra un mensaje sin bloquear el programa.

馃搶 Ejemplo de salida si el usuario ingresa texto:

Error: Debes ingresar un n煤mero v谩lido.

3️⃣ Capturar Errores Espec铆ficos en Python

Podemos capturar distintos tipos de errores para manejarlos de forma adecuada.

馃敼 Ejemplo con m煤ltiples excepciones:

try: lista = [1, 2, 3] indice = int(input("Introduce un 铆ndice: ")) print(f"Elemento en la posici贸n {indice}: {lista[indice]}") except ValueError: print("❌ Error: Debes ingresar un n煤mero.") except IndexError: print("❌ Error: 脥ndice fuera de rango.")

馃搶 Prueba este c贸digo e introduce:
1 → Muestra el elemento correcto.
100 → Muestra un IndexError.
"hola" → Muestra un ValueError.


4️⃣ Usar finally para C贸digo que Siempre se Ejecuta

El bloque finally se ejecuta siempre, independientemente de si hubo un error o no.

馃敼 Ejemplo de finally en manejo de archivos:

try: archivo = open("datos.txt", "r") contenido = archivo.read() print(contenido) except FileNotFoundError: print("❌ Error: El archivo no existe.") finally: print("馃搶 Cierre de recursos completado.")

馃搶 Si el archivo datos.txt no existe, el programa mostrar谩:

Error: El archivo no existe. 馃搶 Cierre de recursos completado.

finally es 煤til para liberar recursos (como archivos o conexiones a bases de datos).


5️⃣ Crear Nuestras Propias Excepciones

Podemos definir nuestras propias excepciones personalizadas con raise.

馃敼 Ejemplo de excepci贸n personalizada:

def verificar_edad(edad): if edad < 18: raise ValueError("❌ Error: Debes ser mayor de edad.") print("✅ Acceso permitido.") try: edad = int(input("Introduce tu edad: ")) verificar_edad(edad) except ValueError as e: print(e)

馃搶 Si el usuario ingresa una edad menor a 18:

Error: Debes ser mayor de edad.

raise permite lanzar un error con un mensaje personalizado.


馃殌 Conclusi贸n

try-except evita que los programas se bloqueen por errores inesperados.
✅ Podemos capturar errores espec铆ficos para manejarlos mejor.
finally se usa para cerrar recursos como archivos o bases de datos.
Podemos definir excepciones personalizadas con raise.

馃搶 Pr贸ximo post: Ejercicios pr谩cticos de manejo de excepciones en Python.

馃搨 C贸digo disponible en mi GitHub: github.com/josecodetech

馃帴 Aprende con mis videos en YouTube: https://www.youtube.com/@josecodetech

馃挰 ¿Alguna vez has tenido un error inesperado en Python? Cu茅ntamelo en los comentarios.