Skip to main content

Ejercicios

Ejercicio: Registro de una Aplicación de Conversión de Temperatura

Crea una aplicación de línea de comandos que convierta la temperatura de Celsius a Fahrenheit y viceversa. Utiliza la biblioteca logging para registrar información sobre las conversiones y posibles errores.

Requisitos:

  1. La aplicación debe aceptar dos argumentos de línea de comandos: la temperatura y la escala de origen (C para Celsius o F para Fahrenheit).

  2. Debe convertir la temperatura a la escala de destino y mostrar el resultado en la consola.

  3. La aplicación debe manejar errores como temperaturas inválidas o escalas incorrectas y registrar estos errores utilizando la biblioteca logging.

Pasos sugeridos:

  1. Configura el registro de la aplicación utilizando la biblioteca logging. Define un logger con un handler de consola y un formatter adecuado.

  2. Implementa la lógica de conversión de temperatura en una función separada. Esta función debe manejar la conversión de Celsius a Fahrenheit y viceversa, y manejar errores utilizando la declaración try-except.

  3. Crea un script principal que utilice la función de conversión de temperatura según los argumentos de línea de comandos proporcionados por el usuario.

  4. Agrega declaraciones de registro en la función de conversión para registrar información sobre las conversiones realizadas y posibles errores.

  5. Ejecuta el script con diferentes temperaturas y escalas para probar su funcionalidad. Observa los registros generados por la aplicación y asegúrate de que la información sea útil y comprensible.

Ejemplo de Registro:

$ python convertidor_temperatura.py 32 C
2022-04-12 12:00:00 - convertidor_temperatura - INFO - Convertir 32 grados Celsius a Fahrenheit
2022-04-12 12:00:00 - convertidor_temperatura - INFO - Resultado: 89.6 grados Fahrenheit

$ python convertidor_temperatura.py 100 F
2022-04-12 12:00:00 - convertidor_temperatura - INFO - Convertir 100 grados Fahrenheit a Celsius
2022-04-12 12:00:00 - convertidor_temperatura - INFO - Resultado: 37.78 grados Celsius

$ python convertidor_temperatura.py 100 K
2022-04-12 12:00:00 - convertidor_temperatura - ERROR - Escala de temperatura no válida: K

Ejercicio: Registro de una Aplicación de Gestión de Inventario

Desarrolla una aplicación de línea de comandos para gestionar un inventario de productos. La aplicación debe permitir agregar, eliminar y listar productos, y registrar estas operaciones en un archivo de registro.

Requisitos:

  1. La aplicación debe aceptar diferentes comandos de línea de comandos para realizar operaciones en el inventario: agregar, eliminar y listar.

  2. Debe permitir al usuario agregar un producto especificando su nombre y cantidad, eliminar un producto por su nombre y listar todos los productos en el inventario.

  3. Todas las operaciones realizadas en el inventario deben registrarse en un archivo de registro utilizando la biblioteca logging.

Pasos sugeridos:

  1. Configura el registro de la aplicación utilizando la biblioteca logging. Define un logger con un handler de archivo y un formatter adecuado para registrar las operaciones del inventario.

  2. Implementa funciones separadas para cada comando de línea de comandos: agregar_producto, eliminar_producto y listar_productos. Estas funciones deben manejar las operaciones correspondientes en el inventario y registrar las acciones utilizando el logger configurado.

  3. Crea un script principal que analice los argumentos de línea de comandos y llame a las funciones correspondientes según el comando proporcionado por el usuario.

  4. Asegúrate de manejar adecuadamente los casos de error, como productos que ya existen o productos que no se encuentran en el inventario, y registra estos errores utilizando el logger.

  5. Ejecuta el script y prueba cada uno de los comandos para asegurarte de que el registro de operaciones en el inventario funcione correctamente y se registre en el archivo de registro.

Ejemplo de Registro:

2022-04-12 12:00:00 - gestion_inventario - INFO - Producto 'Manzanas' agregado al inventario, cantidad: 10
2022-04-12 12:00:00 - gestion_inventario - INFO - Producto 'Plátanos' agregado al inventario, cantidad: 5
2022-04-12 12:00:00 - gestion_inventario - INFO - Producto 'Manzanas' eliminado del inventario
2022-04-12 12:00:00 - gestion_inventario - INFO - Listado de productos en el inventario: {'Plátanos': 5}
2022-04-12 12:00:00 - gestion_inventario - ERROR - El producto 'Peras' no se encuentra en el inventario

Ejercicio: Registro de Solicitudes HTTP

Desarrolla un script Python que realice solicitudes HTTP a un servidor remoto utilizando la biblioteca requests. Utiliza la biblioteca logging para registrar información sobre las solicitudes realizadas, incluyendo el método HTTP, la URL solicitada, el código de estado de la respuesta y cualquier error que ocurra durante la solicitud.

Requisitos:

  1. Utiliza la biblioteca requests para realizar solicitudes HTTP a un servidor remoto. Puedes usar una API pública o un servidor local para este propósito.

  2. Configura el registro de las solicitudes HTTP utilizando la biblioteca logging. Define un logger con un handler de archivo y un formatter adecuado para registrar la información de las solicitudes.

  3. Registra la información de cada solicitud realizada, incluyendo el método HTTP, la URL solicitada, el código de estado de la respuesta y cualquier error que ocurra durante la solicitud.

Pasos sugeridos:

  1. Configura el registro de las solicitudes HTTP utilizando la biblioteca logging. Define un logger con un handler de archivo y un formatter adecuado para registrar la información de las solicitudes.

  2. Utiliza la biblioteca requests para realizar solicitudes HTTP a un servidor remoto. Puedes probar con diferentes métodos HTTP como GET, POST, PUT, DELETE, etc.

  3. Registra la información de cada solicitud realizada utilizando el logger configurado. Incluye detalles como el método HTTP utilizado, la URL solicitada y el código de estado de la respuesta.

  4. Maneja cualquier error que ocurra durante la solicitud utilizando un bloque try-except y registra los detalles del error utilizando el logger configurado.

  5. Ejecuta el script y realiza varias solicitudes HTTP para generar registros de actividad. Verifica que la información de las solicitudes y cualquier error se esté registrando correctamente en el archivo de registro.

Ejemplo de Registro:

2022-04-12 12:00:00 - solicitud_http - INFO - GET - http://api.example.com/data - Código de estado: 200
2022-04-12 12:00:05 - solicitud_http - INFO - POST - http://api.example.com/create - Código de estado: 201
2022-04-12 12:00:10 - solicitud_http - ERROR - PUT - http://api.example.com/update - Error: 404 Not Found

Este ejercicio te permitirá practicar la integración del registro con la realización de solicitudes HTTP utilizando la biblioteca requests en Python, lo que te ayudará a entender cómo registrar y manejar la actividad de las solicitudes en tus aplicaciones.

solicitudes_http = [
{'url': 'https://www.nonexistentwebsite.com', 'metodo': 'DELETE'},
{'url': 'https://jsonplaceholder.typicode.com/comments', 'metodo': 'POST'},
{'url': 'https://www.google.com', 'metodo': 'GET'},
{'url': 'https://jsonplaceholder.typicode.com/posts', 'metodo': 'POST'},
{'url': 'https://www.nonexistentwebsite.com', 'metodo': 'PUT'},
{'url': 'https://api.github.com/repos/octocat/Hello-World', 'metodo': 'GET'},
{'url': 'https://api.spotify.com/v1/search', 'metodo': 'GET'},
{'url': 'https://api.spotify.com/v1/albums/5UJpUv7o8Ogqv1Kb0R0sz5', 'metodo': 'GET'},
{'url': 'https://api.spotify.com/v1/playlists/37i9dQZF1DZ06evO4SzTt8/tracks', 'metodo': 'GET'},
{'url': 'https://jsonplaceholder.typicode.com/comments/1', 'metodo': 'DELETE'},
{'url': 'https://api.spotify.com/v1/artists/1hCkSJcXREhrodeIHQdav8', 'metodo': 'GET'},
{'url': 'https://jsonplaceholder.typicode.com/posts/1', 'metodo': 'PUT'},
{'url': 'https://api.github.com/users/octocat', 'metodo': 'GET'},
{'url': 'https://api.spotify.com/v1/users/wizzler/playlists', 'metodo': 'GET'},
{'url': 'https://api.spotify.com/v1/playlists/37i9dQZF1DZ06evO4SzTt8', 'metodo': 'GET'},
{'url': 'https://api.spotify.com/v1/playlists/37i9dQZF1DZ06evO4SzTt8', 'metodo': 'GET'},
{'url': 'https://www.openai.com', 'metodo': 'GET'},
{'url': 'https://www.nonexistentwebsite.com', 'metodo': 'POST'},
{'url': 'https://jsonplaceholder.typicode.com/comments/1', 'metodo': 'PUT'},
{'url': 'https://jsonplaceholder.typicode.com/posts', 'metodo': 'PUT'}
]