| @@ -0,0 +1,61 @@ | |||||
| 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() | |||||