1日目のゴールと全体像
メモ帳アプリ 1日目のテーマは 「Pythonの基本文法だけで“テキストメモを作って保存する”ところまでやること」 です。
この日はまだ複雑な機能は入れず、まずは
- 変数で「メモの内容」を覚える
- 繰り返しで「複数のメモ」を扱う
- 条件分岐で「終了するかどうか」を決める
- 関数で「入力・表示・保存」を部品化する
- ファイル操作で「メモをテキストファイルに保存する」
という流れで、「動くメモ帳の最初の形」 を作っていきます。
メモ帳アプリの基本アイデア
メモ帳の仕組みは、とてもシンプルです。
- ユーザーがメモを書き込む
- 書いたメモをどこかに保存しておく
- 必要なときに一覧として表示する
- ファイルにも保存しておく
この「どこかに保存しておく」が、 Pythonでは 変数やリスト、そしてファイル の出番になります。
1つのメモを変数に入れてみる
まずは「メモ」を1つだけ扱ってみます。
memo = input("メモを書いてください:")
print("あなたのメモ:", memo)
Python深掘りポイント
input()はユーザーから文字列を受け取る- 受け取った値を
memoという変数に入れておくことで、後から使える print()で確認することで、「変数に入った」感覚がつかめる
ここまでは「1つだけのメモ」です。 1日目の本番は、ここから 複数のメモを扱う ところです。
複数のメモをリストで管理する
メモ帳アプリでは、メモをどんどん追加していきます。 そこで、複数のメモをまとめて扱うために リスト を使います。
memos = [] # メモを入れていくための空のリスト
Pythonここに、ユーザーが入力したメモを追加していきます。
memo = input("メモを書いてください:")
memos.append(memo) # リストに追加
Python深掘りポイント
- リストは「複数の値をまとめて扱う箱」
append()は「リストの末尾に追加する」メソッド- メモ帳アプリでは、リストが主役になる
繰り返しで「何件でも」メモを追加できるようにする
1件だけではなく、ユーザーが「もう1件」「もう1件」と 続けて入力できるようにしたいですよね。
そこで 繰り返し と 条件分岐 を組み合わせます。
シンプルなループの形
memos = []
while True:
memo = input("メモを書いてください(終了したいときは空のままEnter):")
if memo == "": # 何も入力されなかったら終了
break
memos.append(memo)
print("=== メモ一覧 ===")
for m in memos:
print("-", m)
Python深掘りポイント
while True:は「ずっと繰り返す」if memo == "": breakで「空入力なら終了」という条件分岐for m in memos:で「リストの中身を1つずつ取り出して表示」
この時点で、すでに 「簡単なメモ帳アプリ」 が完成しています。
関数にまとめて「部品化」する
1日目から「関数」を意識しておくと、 後の拡張がとても楽になります。
設計
- 関数名:
input_memos - 役割:ユーザーからメモを受け取り、リストとして返す
def input_memos():
"""ユーザーからメモを入力してもらい、リストで返す関数"""
memos = []
while True:
memo = input("メモを書いてください(終了したいときは空のままEnter):")
if memo == "": # 空なら終了
break
memos.append(memo)
return memos
Python深掘りポイント
- 関数は「処理のまとまり」
return memosで、関数の外に結果を渡す- 後で「表示」「保存」などを別の関数に分けやすくなる
メモ一覧を表示する関数
表示も関数にしておくと、 「表示方法を変えたい」ときに楽です。
def show_memos(memos):
"""メモ一覧をきれいに表示する関数"""
print("=== メモ一覧 ===")
if not memos: # リストが空ならメッセージだけ表示
print("メモは登録されていません。")
return
for m in memos:
print("-", m)
Python深掘りポイント
if not memos:は「リストが空かどうか」をチェックする条件分岐- 繰り返しで1件ずつ表示することで、見やすい一覧になる
ファイル操作の“入口”:メモを簡単に保存してみる
1日目では、ファイル操作は「軽く触る」程度にします。 「今日のメモをテキストファイルに書き出す」 だけでも、 かなり実用的になります。
def save_memos_to_file(memos, file_path="memos.txt"):
"""メモ一覧をファイルに保存する関数"""
with open(file_path, "w", encoding="utf-8") as f:
for m in memos:
f.write(m + "\n") # 1行に1つずつ書き込む
print(f"メモを {file_path} に保存しました。")
Python深掘りポイント
"w"モードは「上書き保存」for m in memos:でリストの中身を1件ずつ書き込む\nを付けることで、1行1メモになる
1日目では「読み込み」はまだ扱わず、 「書き出せるようになった」 ことを大事にします。
1日目の完成コード:シンプルメモ帳アプリ
ここまでの要素を全部つなげると、 1日目の完成版はこんな形になります。
def input_memos():
"""ユーザーからメモを入力してもらい、リストで返す関数"""
memos = []
while True:
memo = input("メモを書いてください(終了したいときは空のままEnter):")
# 条件分岐:空なら入力終了
if memo == "":
break
memos.append(memo) # リストに追加
return memos
def show_memos(memos):
"""メモ一覧をきれいに表示する関数"""
print("=== メモ一覧 ===")
# 条件分岐:何も登録されていない場合
if not memos:
print("メモは登録されていません。")
return
# 繰り返し:1件ずつ表示
for m in memos:
print("-", m)
def save_memos_to_file(memos, file_path="memos.txt"):
"""メモ一覧をファイルに保存する関数"""
with open(file_path, "w", encoding="utf-8") as f:
for m in memos:
f.write(m + "\n") # 1行に1つずつ書き込む
print(f"メモを {file_path} に保存しました。")
def main():
"""アプリ全体の流れをまとめた関数"""
print("=== メモ帳アプリ 1日目 ===")
# メモを入力
memos = input_memos()
# メモを表示
show_memos(memos)
# ファイルに保存するかどうかを聞く(条件分岐)
answer = input("メモをファイルに保存しますか?(y/n):")
if answer == "y":
save_memos_to_file(memos)
else:
print("保存せずに終了します。")
if __name__ == "__main__":
main()
Pythonコードの重要ポイントを深掘り
1. 変数は「値を覚えておく箱」
memos:メモの一覧memo:1件分のメモanswer:保存するかどうかのユーザーの選択
これらはすべて「後で使うために値を覚えておく」ための変数です。
2. 条件分岐で「流れ」をコントロールする
if memo == "": break→ 入力を終えるタイミングを決めるif not memos:→ メモが1件もないときの表示を変えるif answer == "y":→ 保存するかどうかをユーザーに委ねる
条件分岐は、 「ユーザーの入力や状態に応じて、アプリの挙動を変える」 ための基本です。
3. 繰り返しで「複数のもの」を扱う
while True:で「何件でも入力できる」for m in memos:で「複数のメモを1件ずつ表示・保存する」
メモ帳のような「複数データ」を扱うアプリでは、 繰り返しが必須になります。
4. 関数で「役割ごとに分ける」
input_memos:入力担当show_memos:表示担当save_memos_to_file:保存担当main:全体の流れ担当
この分割ができると、 「どこを直せば何が変わるか」 がとてもわかりやすくなります。
5. ファイル操作は「外部世界との橋」
1日目では「書く」だけですが、 それでもアプリは一気に実用的になります。
- 画面に表示するだけ → 一時的
- ファイルに保存する → 後から見返せる
この違いは大きいです。
1日目で本当に掴んでほしいこと
● 「動くものを作る」感覚
自分が入力したメモが
- 画面に一覧表示されて
- ファイルにも保存される
この体験は、 「Pythonで何かを作る」 感覚をつかむうえで、とても大事です。
● 文法は「アプリの中で使ってこそ身につく」
- 変数
- 条件分岐
- 繰り返し
- 関数
- ファイル操作
これらは、単体で覚えるよりも 「メモ帳アプリの中で使う」 ほうが、ずっと記憶に残ります。
次のステップ
2日目以降では、このメモ帳をさらに育てていきます。
- 2日目:タイトル付きメモ・番号付き表示・削除機能
- 3日目:ファイルから読み込んで「前回のメモ」を復元
- 4日目:設定ファイル導入・保存先や動作の外部化
- 5〜7日目:検索機能・タグ・ログなどを追加して「本格的なメモ管理ツール」に近づける
1日目のこのコードを、 ぜひ自分の手で打ち込んで、少しずつ改造してみてください。 そこから先が、いちばん面白いところです。


