1日目のゴール
1日目のテーマは
「辞書型 dict を使って、“ユーザー管理アプリの土台”を作れるようになること」 です。
今日つかんでほしいのは、この3つです。
辞書型とは何か(キーと値の関係)
ユーザー1人をどう表現するか
ユーザー一覧をどう辞書で管理するか(CRUDの“C”と“R”の入口)
まだ「アプリ完成」までは行きません。
でも、“ユーザー管理の頭の中のモデル” を、しっかり作る日です。
辞書型 dict を「現実のイメージ」でつかむ
辞書型は「ラベル付きの引き出し」
まず、dict を難しく考えないでほしいんです。
辞書型は、
「ラベル付きの引き出しがたくさん並んだ棚」
だと思ってください。
Python では、こう書きます。
user = {
"name": "Taro",
"age": 25,
"email": "taro@example.com"
}
Pythonここでやっていることを日本語にすると、
「user という箱の中に、name というラベルの引き出しに ‘Taro’ を入れ、age というラベルの引き出しに 25 を入れ、email というラベルの引き出しに ‘taro@example.com’ を入れる」
ということです。
ここでの重要ポイントは、
キー("name" や "age")は「ラベル」
値("Taro" や 25)は「そのラベルに対応する中身」
という対応関係です。
キーと値をしっかりイメージする
「キーは質問、値は答え」として考える
さっきの user を使って、こう書けます。
print(user["name"]) # Taro
print(user["age"]) # 25
print(user["email"]) # taro@example.com
Pythonこれは、こういう会話に近いです。
「このユーザーの name は?」 → “Taro”
「このユーザーの age は?」 → 25
「このユーザーの email は?」 → “taro@example.com”
つまり、
「キーは“質問の種類”、値は“その答え”」
というイメージを持つと、すごくしっくりきます。
ユーザー1人を「辞書1つ」で表現する
ユーザー情報をどう設計するか
ユーザー管理アプリを作るとき、
まず決めるべきはこれです。
「ユーザー1人を、どんな情報のセットとして扱うか?」
例えば、こう決めてみましょう。
ユーザーID(文字列)
名前
年齢
メールアドレス
これを辞書で表現すると、こうなります。
user1 = {
"id": "u001",
"name": "Taro",
"age": 25,
"email": "taro@example.com"
}
user2 = {
"id": "u002",
"name": "Hanako",
"age": 30,
"email": "hanako@example.com"
}
Pythonここでの重要ポイントは、
「ユーザー1人=1つの辞書」
という設計です。
複数ユーザーをどう管理するか
「ユーザー一覧」を辞書で持つ発想
ユーザーが1人だけなら、user1 だけでいいですが、
アプリとしては「複数ユーザー」を扱いたいですよね。
ここで選択肢が出てきます。
リストで [user1, user2, ...] と持つ
辞書で {ユーザーID: user辞書} と持つ
今回は「ユーザー管理アプリ」なので、
ユーザーIDで素早く探せる形 にしたいです。
そこで、こうします。
users = {
"u001": {
"id": "u001",
"name": "Taro",
"age": 25,
"email": "taro@example.com"
},
"u002": {
"id": "u002",
"name": "Hanako",
"age": 30,
"email": "hanako@example.com"
}
}
Pythonここでの構造を言葉で説明すると、
users は「ユーザー一覧」を表す辞書
キーはユーザーID(”u001″ など)
値は「そのユーザーの情報が入った辞書」
という二段構造になっています。
ユーザーを「IDで取り出す」操作
users[ユーザーID] で一瞬でアクセスできる
さっきの users を使って、
ユーザーIDから情報を取り出してみます。
user_id = "u001"
user = users[user_id]
print(user["name"]) # Taro
print(user["email"]) # taro@example.com
Pythonここで起きていることは、
users という「大きな棚」から、"u001" というラベルの引き出しを開けて、
その中に入っている user 辞書を取り出している
というイメージです。
ここでの重要ポイントは、
「辞書の中に辞書が入っている」構造を怖がらないこと
です。
CRUD の「C」と「R」を辞書で考える
CRUD ってそもそも何?
ユーザー管理アプリでは、
よく「CRUD」という言葉が出てきます。
Create(作成)
Read(読み取り)
Update(更新)
Delete(削除)
今日はこのうち、
Create(ユーザーを追加する)
Read(ユーザーを参照する)
の2つに絞って、
辞書でどう書くかを見ていきます。
Create:ユーザーを追加する
users に「新しいキーと値」を足すだけ
新しいユーザーを追加するには、users 辞書に新しいキーを追加すればOKです。
users = {}
new_user = {
"id": "u001",
"name": "Taro",
"age": 25,
"email": "taro@example.com"
}
users[new_user["id"]] = new_user
Pythonここでの流れを日本語で説明すると、
空のユーザー一覧 users を用意する
新しいユーザー情報 new_user を作る
そのユーザーの "id" をキーとして、users に登録する
ということです。
つまり、
「Create=辞書に新しいキーと値を追加すること」
です。
Read:ユーザーを参照する
ID を指定して情報を取り出す
さっき追加したユーザーを、
ID から取り出して表示してみます。
user_id = "u001"
if user_id in users:
user = users[user_id]
print("ID:", user["id"])
print("名前:", user["name"])
print("年齢:", user["age"])
print("メール:", user["email"])
else:
print("そのIDのユーザーは存在しません。")
Pythonここでの重要ポイントは、
if user_id in users: で
「そのIDが登録されているかどうか」をチェックしている
ということです。
存在チェックをしてから取り出す
これは、辞書を安全に扱ううえでとても大事な習慣です。
1日目のミニアプリ:超シンプルユーザー登録&表示
今日の学びをひとつの流れにする
1日目の締めとして、
「1人だけユーザーを登録して、すぐ表示する」
というミニアプリを書いてみます。
def main():
users = {}
print("ユーザー登録アプリ(1日目)")
user_id = input("ユーザーIDを入力してください: ")
name = input("名前を入力してください: ")
age_text = input("年齢を入力してください: ")
email = input("メールアドレスを入力してください: ")
age = int(age_text)
user = {
"id": user_id,
"name": name,
"age": age,
"email": email
}
users[user_id] = user
print("ユーザーを登録しました。")
print("=== 登録されたユーザー情報 ===")
print("ID:", users[user_id]["id"])
print("名前:", users[user_id]["name"])
print("年齢:", users[user_id]["age"])
print("メール:", users[user_id]["email"])
main()
Pythonこのプログラムがやっていることを、
あえて日本語だけで整理するとこうです。
空のユーザー一覧 users を用意する
ユーザーID・名前・年齢・メールを入力してもらう
入力された情報から user 辞書を作るusers[user_id] = user で登録する(Create)
登録したユーザーを users[user_id] から取り出して表示する(Read)
これだけで、
「辞書型で作るユーザー管理アプリの“最初の一歩”」
は踏み出せています。
重要ポイントの深掘り:なぜ dict を使うのか
リストではなく辞書を選ぶ理由
「ユーザー一覧をリストで持つこともできるのに、
なぜわざわざ辞書にするのか?」
ここを理解しておくと、
設計のセンスが一段上がります。
リストで持つ場合(例):
users = [
{"id": "u001", "name": "Taro"},
{"id": "u002", "name": "Hanako"}
]
Pythonこの場合、
「ID が u002 のユーザーを探す」には、
先頭から順番に探す必要があります。
一方、辞書で持つ場合:
users = {
"u001": {...},
"u002": {...}
}
Pythonこの場合、
user = users["u002"]
Pythonと一発で取り出せます。
つまり、
「ID で素早く探したいときは、辞書が圧倒的に向いている」
ということです。
ユーザー管理アプリはまさに
「ID で探す」世界なので、
辞書型がぴったりハマります。
1日目のまとめ:今日つかんでほしい感覚
今日の本質は、これです。
辞書型 dict は「キー(ラベル)と値(中身)のセット」。
ユーザー1人を「1つの辞書」で表現できる。
ユーザー一覧を「ユーザーID → ユーザー辞書」の辞書で管理できる。
Create は「辞書に新しいキーと値を追加すること」。
Read は「キーを指定して値(ユーザー情報)を取り出すこと」。
ここまで理解できていれば、
2日目からの
「複数ユーザーを追加する」
「メニューで操作を選ぶ」
「Update(更新)と Delete(削除)を実装する」
といった、本格的なユーザー管理アプリに
スムーズに進んでいけます。


