Solución al Ejercicio: Listar tareas sencillas
📋 Copiar código
def lista_de_tareas():
"""
Implementa una lista de tareas sencilla donde el usuario puede añadir, ver y marcar tareas como completadas.
"""
tareas = []
def agregar_tarea(tarea):
tareas.append({"tarea": tarea, "completada": False})
print(f"Tarea '{tarea}' añadida.")
def ver_tareas():
if not tareas:
print("No hay tareas en la lista.")
return
print("\n--- Lista de Tareas ---")
for indice, tarea in enumerate(tareas):
estado = "[X]" if tarea["completada"] else "[ ]"
print(f"{indice + 1}. {estado} {tarea['tarea']}")
print("-----------------------")
def marcar_completada(indice):
if 1 <= indice <= len(tareas):
tareas[indice - 1]["completada"] = True
print(f"Tarea {indice} marcada como completada.")
else:
print("Índice de tarea inválido.")
while True:
print("\nOpciones:")
print("1. Añadir tarea")
print("2. Ver tareas")
print("3. Marcar tarea como completada")
print("4. Salir")
opcion = input("Elige una opción: ")
if opcion == "1":
tarea = input("Introduce la nueva tarea: ")
agregar_tarea(tarea)
elif opcion == "2":
ver_tareas()
elif opcion == "3":
ver_tareas()
try:
indice = int(input("Introduce el número de la tarea para marcar como completada: "))
marcar_completada(indice)
except ValueError:
print("Entrada inválida. Por favor, introduce un número.")
elif opcion == "4":
print("¡Hasta luego!")
break
else:
print("Opción inválida. Por favor, elige una opción válida.")
# Iniciar la lista de tareas
lista_de_tareas()
Explicación del Código:
-
def lista_de_tareas():
:
- Define una función llamada
lista_de_tareas
que contiene toda la lógica de la aplicación de
la lista de tareas.
-
tareas = []
:
- Se inicializa una lista vacía llamada
tareas
para almacenar los diccionarios de las tareas. Cada
diccionario tendrá las claves "tarea" (la descripción de la tarea) y
"completada" (un booleano indicando si está completada).
-
def agregar_tarea(tarea):
:
- Define una función interna para añadir
una nueva tarea a la lista. Crea un diccionario con la tarea y el estado
"no completada" y lo añade a la lista
tareas
.
-
def ver_tareas():
:
- Define una función interna para mostrar
todas las tareas en la lista, indicando su índice y si están completadas
o no.
-
def marcar_completada(indice):
:
- Define una función interna para marcar
una tarea como completada, basándose en su índice en la lista.
-
while True:
:
- Se inicia un bucle
while
que
mantiene la aplicación en funcionamiento hasta que el usuario elige
salir.
-
Se muestran las opciones
disponibles para el usuario.
-
Se pide al usuario que elija una
opción mediante la entrada por teclado.
-
Se realizan acciones basadas en la
opción elegida:
- Opción "1" (Añadir tarea):
Se pide la descripción de la nueva tarea y se llama a la función
agregar_tarea
.
- Opción "2" (Ver tareas):
Se llama a la función
ver_tareas
para mostrar la lista
actual.
- Opción "3" (Marcar tarea como
completada): Se muestra la lista de tareas, se pide el número
de la tarea a completar y se llama a
marcar_completada
(con
manejo de errores si la entrada no es un número).
- Opción "4" (Salir): Se
imprime un mensaje de despedida y se sale del bucle
while
con break
, terminando la aplicación.
- Opción inválida: Se
muestra un mensaje de error si la entrada del usuario no coincide con
ninguna de las opciones.
-
lista_de_tareas()
:
- Se llama a la función principal para
iniciar la aplicación de la lista de tareas cuando se ejecuta el script.