No es necesario bajo mi punto de vista el doble while
No es necesario bajo mi punto de vista el doble while, comparto mi solición.
import os
# Definimos variables globales
run_program = True
todo_list = []
# Función que limpia la consola
def clean():
os.system('cls' if os.name == 'nt' else 'clear')
# Función para mostrar el menu
def show_menu_options():
print()
print('Por favor seleccione una opción: ')
print()
print('[1] Mostrar las tareas')
print('[2] Crear un tarea')
print('[3] Marcar como realizada una tarea')
print('[4] Borrar una tarea')
print('[5] Salir')
print()
# Función para mostrar la lista
def show_todo_list(update=False):
global todo_list
clean()
print()
print("---------------------------------------------------------------")
print('Lista de tareas: ')
print()
if len(todo_list) != 0:
for todo in todo_list:
print(f' - Tarea [{todo_list.index(todo) + 1}]: {todo}')
else:
print(f'No hay tareas pendientes!')
print()
print("---------------------------------------------------------------")
print()
if not update:
input('Presione ENTER para continuar ...')
# Función para guardar tareas en la variable 'todolist'
def create_todo_list():
global todo_list
clean()
print('Crear una nueva tarea: ')
print()
todo = input('Ingrese la tarea: ')
todo = todo.strip()
todo_list.append(todo)
show_todo_list()
# Función para marcar como realizada la tarea
def update_todo_list():
global todo_list
clean()
print('Actualizar nueva tarea: ')
print()
show_todo_list(update=True)
print()
todo_id = int(input("Ingrese el [id] de la tarea que quiera marcar como completa: "))
todo_list[todo_id - 1] = todo_list[todo_id - 1] + " ✅"
show_todo_list(update=False)
# Función para eliminar las tareas
def delete_todo_list():
global todo_list
clean()
print('Eliminar una tarea: ')
print()
show_todo_list(update=True)
print()
todo_id = int(input("Ingrese el [id] de la tarea que quiera eliminar completa: "))
tarea = todo_list[todo_id - 1]
del todo_list[todo_id - 1]
print()
print(f'Tarea [{tarea}] eliminada correctamente [✅]')
print()
input()
show_todo_list(update=False)
def main():
global run_program
# Limpiamos la consola
clean()
# Mostramos el mensaje de bienvenida
print('.: Welcome to a Python To do list :.')
# while
while run_program:
clean()
show_menu_options()
option = int(input('Ingresa una opcion: '))
match option:
case 1:
show_todo_list()
case 2:
create_todo_list()
case 3:
update_todo_list()
case 4:
delete_todo_list()
case 5:
run_program = False
clean()
print()
print('Gracias por usar este programa, hasta luego! 👌👌')
print()
case _:
clean()
print('Error: Ingresa una opción valida! ❌')
input('.: Pulsa enter para continuar .... :.')
if __name__ == '__main__':
main()
