TODO en Python 3

Siempre me gusta realizarme mis pequeños scripts en Python para automatizar tareas. Pero lo que más me gusta es sustituir un software que uso a diario por una versión propia. Me ayuda a aprender nuevas técnicas, a mejorar mi vocabulario de Python, y personalizar mis herramientas.

En este caso tengo un sencillo ejemplo de un TODO. Una lista de tareas que me sirve para apuntarme trabajos pendientes o inmediatas. Además, me permite modificar las ya existentes.

El código comentado:

# Variables
tareas = []
play = True

# Funciones
def mostrar_tareas():
    '''
    Muestra las tareas
    '''
    # Limpiamos
    print('\n' * 100)
    # Mostramos todo
    print('TODO')
    print('-' * 20)
    if len(tareas) == 0:
        print('No tienes tareas, por ahora :)')
    for posicion, tarea in enumerate(tareas):
        print('{posicion}) {tarea}'.format(posicion=posicion + 1, tarea=tarea))
    print('-' * 20)
    print('''
    Opciones:
    1- Nuevo
    2- Modificar
    3- Borrar
    4- Salir
    ''')

# Logica
while play:
    mostrar_tareas()
    opcion = input('\n')
    # Nueva tarea
    if opcion == '1':
        nueva_tarea = input('Escribe la nueva tarea: ')
        tareas.append(nueva_tarea)
    # Modificar tarea
    elif opcion == '2':
        pos_modificar = int(input('Posicion: '))
        texto_modificar = input('Nuevo texto: ')
        tareas[pos_modificar - 1] = texto_modificar
    # Borrar tarea
    elif opcion == '3':
        pos_borrar = int(input('Posicion: '))
        del tareas[pos_borrar - 1]
    # Salir
    else:
        play = False
Versión escritorio