ToDoリストアプリケーションは、タスク管理を行うシンプルなツールで、プログラミングの基礎を学ぶのに最適なプロジェクトです。この章では、Pythonを使って基本的なToDoリストアプリケーションを作成する方法を解説します。
ToDoリストアプリケーションの概要
作成するアプリケーションの機能
- タスクの追加:新しいタスクをリストに追加。
- タスクの表示:現在のタスクリストを表示。
- タスクの削除:完了したタスクを削除。
- タスクの保存と読み込み(オプション):タスクリストを永続化。
ステップ1:基本構造の作成
プログラムの流れ
1. ユーザーに操作を選択させる(追加、表示、削除、終了)。
2. 操作に応じた処理を実行。
3. 必要に応じてリストを更新。
4. ユーザーが終了を選択するまで繰り返す。
基本コード
def todo_app():
print("ToDoリストアプリケーションへようこそ!")
tasks = [] # タスクリストを保持
while True:
print("\n操作を選択してください:")
print("1: タスクを追加")
print("2: タスクリストを表示")
print("3: タスクを削除")
print("4: 終了")
choice = input("選択: ")
if choice == "1":
task = input("追加するタスクを入力してください: ")
tasks.append(task)
print(f"タスク '{task}' を追加しました。")
elif choice == "2":
print("\n現在のタスクリスト:")
if not tasks:
print("タスクリストは空です。")
else:
for i, task in enumerate(tasks, start=1):
print(f"{i}: {task}")
elif choice == "3":
print("\n削除するタスクの番号を入力してください:")
for i, task in enumerate(tasks, start=1):
print(f"{i}: {task}")
try:
task_num = int(input("番号: "))
removed_task = tasks.pop(task_num - 1)
print(f"タスク '{removed_task}' を削除しました。")
except (ValueError, IndexError):
print("無効な番号です。")
elif choice == "4":
print("アプリケーションを終了します。")
break
else:
print("無効な選択です。もう一度お試しください。")
# プログラムの実行
todo_app()
上記コードが不明な方は本記事下に詳しい解説先があります。
ステップ2:プログラムの改良
1. タスクの保存と読み込み機能を追加
保存機能
プログラム終了時にタスクリストをファイルに保存します。
読み込み機能
プログラム起動時に保存されたタスクリストを読み込みます。
改良版コード
import os
def save_tasks(tasks, filename="tasks.txt"):
with open(filename, "w") as file:
for task in tasks:
file.write(task + "\n")
def load_tasks(filename="tasks.txt"):
if os.path.exists(filename):
with open(filename, "r") as file:
return [line.strip() for line in file]
return []
def todo_app():
print("ToDoリストアプリケーションへようこそ!")
tasks = load_tasks()
print(f"保存されたタスクリストを読み込みました({len(tasks)}件)。")
while True:
print("\n操作を選択してください:")
print("1: タスクを追加")
print("2: タスクリストを表示")
print("3: タスクを削除")
print("4: 終了")
choice = input("選択: ")
if choice == "1":
task = input("追加するタスクを入力してください: ")
tasks.append(task)
print(f"タスク '{task}' を追加しました。")
elif choice == "2":
print("\n現在のタスクリスト:")
if not tasks:
print("タスクリストは空です。")
else:
for i, task in enumerate(tasks, start=1):
print(f"{i}: {task}")
elif choice == "3":
print("\n削除するタスクの番号を入力してください:")
for i, task in enumerate(tasks, start=1):
print(f"{i}: {task}")
try:
task_num = int(input("番号: "))
removed_task = tasks.pop(task_num - 1)
print(f"タスク '{removed_task}' を削除しました。")
except (ValueError, IndexError):
print("無効な番号です。")
elif choice == "4":
save_tasks(tasks)
print("タスクリストを保存しました。アプリケーションを終了します。")
break
else:
print("無効な選択です。もう一度お試しください。")
# プログラムの実行
todo_app()
詳しいコード説明はこちら
実行例
起動時のメッセージ
ToDoリストアプリケーションへようこそ!
保存されたタスクリストを読み込みました(2件)。
タスクの表示
現在のタスクリスト:
1: 本を読む
2: 部屋を掃除する
タスクを追加
追加するタスクを入力してください: プログラミングの練習
タスク 'プログラミングの練習' を追加しました。
図解:ToDoリストアプリケーションのフロー
1. 起動時にタスクリストを読み込み
↓
2. ユーザーが操作を選択(追加/表示/削除/終了)
↓
3. 操作を実行
- 追加 → リストにタスクを追加
- 表示 → タスクリストを一覧表示
- 削除 → リストからタスクを削除
↓
4. 終了時にタスクリストを保存
まとめ
- 基本機能:タスクの追加、表示、削除を実装することで、基本的なプログラム構造を学びました。
- データの永続化:タスクリストをファイルに保存・読み込みすることで、プログラムの実用性を高めました。
- エラーハンドリング:無効な入力への対応を追加することで、堅牢なアプリケーションを構築しました。
ToDoリストアプリケーションを作成することで、プログラミングの基本スキルを実践的に活用する方法を学ぶことができました。
次のステップ:デバッグと問題解決
次回は、「デバッグと問題解決」の重要性と具体的な手法について学びます。コードを効率的に検証・修正し、より高品質なプログラムを作るスキルを習得しましょう!
コメント