|
- class Todo:
- def __init__(self, contents, done):
- self.contents = contents
- self.done = done
-
-
- class TodoList:
- def __init__(self):
- self.todos = []
-
- def add(self, contenu):
- self.todos.append(Todo(contenu, False))
-
- def mark_as_done(self, i):
- self.todos[i - 1].done = True
-
- def mark_as_not_done(self, i):
- self.todos[i - 1].done = False
-
- def show(self):
- if not self.todos:
- print("nothing yet")
- i = 1
- for todo in self.todos:
- if todo.done:
- print(i, "[x]", todo.contents)
- else:
- print(i, "[ ]", todo.contents)
- i += 1
-
-
- def parse_answer(answer):
- if answer.startswith("+ "):
- return "add", answer[2:]
- if answer.startswith("- "):
- return "remove", int(answer[2:])
- if answer.startswith("x "):
- return "done", int(answer[2:])
- if answer.startswith("o "):
- return "undo", int(answer[2:])
- return "error", ""
-
-
- def main():
- todo_list = TodoList()
- while True:
- todo_list.show()
- answer = input("+ / x / o ?\n")
- command, arg = parse_answer(answer)
- if command == "add":
- todo_list.add(arg)
- if command == "done":
- todo_list.mark_as_done(arg)
- if command == "undo":
- todo_list.mark_as_not_done(arg)
- if command == "error":
- print("error")
-
-
- if __name__ == "__main__":
- main()
|