Skip to content

Commit 264b44e

Browse files
committed
#25 - Python
1 parent 978e1aa commit 264b44e

File tree

1 file changed

+81
-0
lines changed

1 file changed

+81
-0
lines changed
+81
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
"""
2+
/*
3+
* EJERCICIO:
4+
* Explora el concepto de "logging" en tu lenguaje. Configúralo y muestra
5+
* un ejemplo con cada nivel de "severidad" disponible.
6+
*
7+
* DIFICULTAD EXTRA (opcional):
8+
* Crea un programa ficticio de gestión de tareas que permita añadir, eliminar
9+
* y listar dichas tareas.
10+
* - Añadir: recibe nombre y descripción.
11+
* - Eliminar: por nombre de la tarea.
12+
* Implementa diferentes mensajes de log que muestren información según la
13+
* tarea ejecutada (a tu elección).
14+
* Utiliza el log para visualizar el tiempo de ejecución de cada tarea.
15+
*/
16+
"""
17+
18+
# EJERCICIO:
19+
import time
20+
import logging
21+
22+
logging.debug("Mensaje a nivel debug.")
23+
logging.info("Mensaje a nivel info.")
24+
logging.warning("Mensaje a nivel warning.")
25+
logging.error("Mensaje a nivel error.")
26+
logging.critical("Mensaje a nivel critical.")
27+
28+
# DIFICULTAD EXTRA:
29+
logging.basicConfig(level=logging.INFO,
30+
format='%(asctime)s - %(levelname)s - %(message)s')
31+
32+
33+
class TaskManager:
34+
def __init__(self):
35+
self.tasks = {}
36+
37+
def add_task(self, name, description):
38+
start_time = time.time()
39+
if name in self.tasks:
40+
logging.warning(f'La tarea "{name}" ya existe.')
41+
else:
42+
self.tasks[name] = description
43+
logging.info(f'Tarea "{name}" añadida.')
44+
end_time = time.time()
45+
logging.debug(f'Tiempo de ejecución para añadir tarea: {
46+
end_time - start_time} segundos')
47+
48+
def remove_task(self, name):
49+
start_time = time.time()
50+
if name in self.tasks:
51+
del self.tasks[name]
52+
logging.info(f'Tarea "{name}" eliminada.')
53+
else:
54+
logging.warning(f'La tarea "{name}" no existe.')
55+
end_time = time.time()
56+
logging.debug(f'Tiempo de ejecución para eliminar tarea: {
57+
end_time - start_time} segundos')
58+
59+
def list_tasks(self):
60+
start_time = time.time()
61+
if not self.tasks:
62+
logging.info('No hay tareas disponibles.')
63+
else:
64+
for name, description in self.tasks.items():
65+
logging.info(f'Tarea: {name} - Descripción: {description}')
66+
end_time = time.time()
67+
logging.debug(f'Tiempo de ejecución para listar tareas: {
68+
end_time - start_time} segundos')
69+
70+
71+
if __name__ == "__main__":
72+
manager = TaskManager()
73+
74+
manager.add_task("Tarea 1", "Descripción de la Tarea 1")
75+
manager.add_task("Tarea 2", "Descripción de la Tarea 2")
76+
77+
manager.list_tasks()
78+
79+
manager.remove_task("Tarea 1")
80+
81+
manager.list_tasks()

0 commit comments

Comments
 (0)