2日目のゴール
2日目のテーマは
「list と append を“アプリとしてちゃんと使える形”にすること」です。
1日目は
list とは何か
append の基本的な動き
を、感覚でつかみました。
2日目ではそこから一歩進んで、
入力チェック(バリデーション)
見やすい表示
「アプリの流れ」としての list+append
を身につけます。
list を「アプリのデータ置き場」として意識する
ただの箱ではなく「アプリの記憶」
1日目では
shopping_list = []
Pythonを「空の箱」として見ました。
2日目では、これを
「アプリの記憶」
として意識してほしいです。
アプリの世界では、
ユーザーが入力する
アプリがそれを覚える
あとでまとめて見せる
という流れが基本です。
この「覚える場所」が list です。
だから、list は小さな“データベース”だと思ってください。
append を「保存する動き」として理解する
入力 → 保存 → 確認、という流れ
1日目のシンプル版を、もう一度見ます。
shopping_list = []
while True:
item = input("追加するもの: ")
if item == "終了":
break
shopping_list.append(item)
print("現在のリスト:", shopping_list)
Pythonここで起きていることを言葉にすると、
ユーザーが入力する(input)
アプリがそれを保存する(append)
保存された状態を見せる(print)
という流れです。
ここで大事なのは、
append は「保存」という意味で使える
という感覚です。
「list に追加する」=「アプリに記録される」
ここがつながると、一気に“アプリっぽく”なります。
入力チェック(バリデーション)を入れてみる
空文字をそのまま保存したくない
現実に使うことを考えると、
こんな入力は避けたいですよね。
何も入力せず Enter
スペースだけ入力して Enter
これらをそのまま保存すると、
リストがぐちゃぐちゃになります。
そこで「空の入力は保存しない」というルールを入れます。
shopping_list = []
print("買い物リストアプリ")
print("買いたいものを入力してください。終了は『終了』。")
while True:
item = input("追加するもの: ")
if item == "終了":
break
if item.strip() == "":
print("空の入力は追加できません")
continue
shopping_list.append(item)
print("追加しました:", item)
print("現在のリスト:", shopping_list)
Pythonここで深掘りしたいポイント
item.strip() == "" の意味を、ちゃんと理解しておきましょう。
strip() は
前後の空白を取り除くメソッドです。
" ".strip() → """ りんご ".strip() → "りんご"
つまり、
「空白しかない入力」も
「何も入力していない」のと同じ扱いにできる、ということです。
バリデーションは、
「アプリを変なデータから守るフィルター」
だと思ってください。
list の中身を“人間にとって見やすく”表示する
そのまま print だと、ちょっと不親切
print(shopping_list)
Pythonこれでも中身は見えますが、
ユーザーにとっては少し分かりづらいです。
例えば、こう表示できたらどうでしょう。
1: りんご
2: 牛乳
3: 卵
一気に「アプリっぽく」なります。
enumerate で番号つき表示にする
shopping_list = ["りんご", "牛乳", "卵"]
print("現在のリスト:")
for index, item in enumerate(shopping_list, start=1):
print(f"{index}: {item}")
Python出力はこうなります。
現在のリスト:
1: りんご
2: 牛乳
3: 卵
ここで押さえたいのは、
enumerate は
「番号」と「中身」を同時に取り出す仕組み
ということです。
番号をつけておくと、
後で「3番を削除」「2番を編集」などの操作がしやすくなります。
2日目のミニアプリ:追加 → バリデーション → 番号つき表示
今日の学びを全部入れたコード
shopping_list = []
print("買い物リストアプリ")
print("買いたいものを入力してください。終了は『終了』。")
while True:
item = input("追加するもの: ")
if item == "終了":
break
if item.strip() == "":
print("空の入力は追加できません")
continue
shopping_list.append(item)
print("追加しました:", item)
print("\n最終的な買い物リスト:")
if len(shopping_list) == 0:
print("何も登録されていません。")
else:
for index, item in enumerate(shopping_list, start=1):
print(f"{index}: {item}")
Pythonこの中に、2日目で押さえたい要素が全部入っています。
空の list を「アプリの記憶」として用意する
append で「保存」する
バリデーションで「変な入力を弾く」
番号つきで「人間にとって見やすく表示する」
2日目のまとめ:今日つかんでほしい感覚
今日、ちゃんと持ち帰ってほしいのはこの感覚です。
list は「アプリの記憶」append は「記憶に書き込む動き」
バリデーションは「変なデータを入れないフィルター」
表示は「ユーザーへの説明」
1日目は「文法を知る日」だったとしたら、
2日目は
「それをアプリの流れとして意識する日」です。
ここまで来ると、
3日目以降の「数値を扱う」「条件付きで追加する」「集めたデータを使って計算する」
といったステップが、かなりスムーズになります。


