今回やること
Todoリストは、複数のタスクを扱う練習に向いています。
今回は安全に動作確認しやすいように、入力待ちではなく決まった操作を順番に実行します。
完成コード
todo_list.py を作ります。
todos = []
def add_todo(title):
todos.append({"title": title, "done": False})
def complete_todo(index):
if 0 <= index < len(todos):
todos[index]["done"] = True
def show_todos():
for index, todo in enumerate(todos):
mark = "x" if todo["done"] else " "
print(f"{index + 1}. [{mark}] {todo['title']}")
add_todo("Pythonを30分学習する")
add_todo("エラー文を読む練習をする")
add_todo("学習メモを書く")
complete_todo(1)
show_todos()
動作確認
python todo_list.py
2番目のTodoだけ [x] になれば成功です。
コードの考え方
- Todoは辞書で表します
- Todo一覧はリストで持ちます
add_todoは追加担当ですcomplete_todoは完了担当ですshow_todosは表示担当です
よくあるエラー
| エラー | 原因 | 修正 |
|---|---|---|
IndexError | 存在しない番号を指定した | 範囲チェックを入れる |
| 完了にならない | done のキー名が違う | キー名を統一する |
| 表示がずれる | 0始まりと1始まりを混同 | 内部は0、表示は+1 |
練習
- Todoを5件に増やす
- 1番目のTodoを完了にする
- 未完了だけ表示する関数を作る
次のステップ
暗記系アプリに進む場合は Pythonミニ制作:単語帳アプリ が次です。