「Pythonを勉強したいけど、どこから始めればいい?」「とにかく何か作ってみたい!」
そんな初心者の悩みを解決するのが、ToDoアプリの自作です。
このアプリは、基本の文法・ファイル操作・条件分岐・ループ・関数といった要素がギュッと詰まっています。
しかも完成すれば、実際に日常生活でも使えるツールになります。
この記事では、誰でも簡単に作れるToDoアプリの作り方を、コード全公開で丁寧に解説します。
ToDoアプリとは?基本の考え方
結論:タスクを追加・表示・保存できるアプリです
ToDoアプリとは、「やることリスト」を管理するツールです。
簡単に見えて、プログラミングの基本機能がたくさん詰まっています。
具体的に何ができる?
- タスクを追加する
- タスクを一覧表示する
- タスクを完了済みにする
- タスクを削除する
- データを保存して再利用する
このような一連の機能をPythonだけで作ってみましょう。
使用するPythonの機能一覧
結論:初心者でも覚えやすい構文だけで作成可能です
このアプリで使う主な機能は以下のとおりです。
input()
(ユーザー入力)print()
(出力)open()
(ファイル保存・読み込み)for
/if
(繰り返しと条件)def
(関数の定義)
これだけでToDoアプリが完成します。
コードの全体像と構成
結論:構成はシンプルな関数の組み合わせです
アプリ全体は次のような関数に分けて作成します。
load_tasks()
:ファイルからタスクを読み込むsave_tasks()
:ファイルにタスクを書き込むshow_tasks()
:現在のタスクリストを表示add_task()
:新しいタスクを追加delete_task()
:タスクを削除main()
:メニューと制御
この構造で「見やすさ」と「使いやすさ」の両立を図ります。
完成形コードをすべて公開!
# todo_app.py
def load_tasks():
try:
with open("tasks.txt", "r", encoding="utf-8") as f:
return [line.strip() for line in f.readlines()]
except FileNotFoundError:
return []
def save_tasks(tasks):
with open("tasks.txt", "w", encoding="utf-8") as f:
for task in tasks:
f.write(task + "\n")
def show_tasks(tasks):
if not tasks:
print("現在のタスクはありません。")
else:
print("\n現在のタスク:")
for idx, task in enumerate(tasks, 1):
print(f"{idx}. {task}")
print()
def add_task(tasks):
new_task = input("追加するタスクを入力してください: ")
tasks.append(new_task)
print(f"「{new_task}」を追加しました。")
def delete_task(tasks):
show_tasks(tasks)
try:
num = int(input("削除するタスクの番号を入力: "))
if 1 <= num <= len(tasks):
removed = tasks.pop(num - 1)
print(f"「{removed}」を削除しました。")
else:
print("無効な番号です。")
except ValueError:
print("数字を入力してください。")
def main():
tasks = load_tasks()
while True:
print("\n==== ToDo メニュー ====")
print("1. タスク一覧")
print("2. タスク追加")
print("3. タスク削除")
print("4. 終了")
choice = input("番号を選んでください: ")
if choice == "1":
show_tasks(tasks)
elif choice == "2":
add_task(tasks)
save_tasks(tasks)
elif choice == "3":
delete_task(tasks)
save_tasks(tasks)
elif choice == "4":
save_tasks(tasks)
print("保存して終了します。")
break
else:
print("無効な入力です。1〜4を選んでください。")
if __name__ == "__main__":
main()
よくあるエラーとその対処法
結論:ファイル操作と入力ミスに注意
初心者がつまずきやすいポイントをまとめました。
FileNotFoundError
- 原因:
tasks.txt
が存在しないのに読み込もうとしている - 解決策:
try-except
で処理を囲んでエラー回避済みです
ValueError
- 原因:削除時に数字以外を入力
- 解決策:
int()
変換をtry
ブロックで保護
IndexError
- 原因:存在しない番号のタスクを指定
- 解決策:
1 <= num <= len(tasks)
で範囲を事前に確認
まとめ:PythonでToDoアプリを作ってみよう
ToDoアプリは、シンプルな構造ながら実用性が高く、学習にも最適な題材です。
学べること:
- ユーザー入力の受け取り
- 条件分岐と繰り返し
- データ保存と読み込み
- 関数を使った構造的な設計
応用ポイント:
- 完了済みタスクのチェック機能を追加
- 日時やカテゴリの保存機能
- GUI(画面付きアプリ)への発展
「まずは作ってみる」が最大の学習法です。
ぜひこのコードを動かして、あなただけのToDoアプリを完成させてください!