商品管理(在庫管理)アプリ 1日目のゴール
1日目のテーマは 「商品を表す“データ構造”を作り、クラス・変数・条件分岐・繰り返し・関数・ファイル操作の基礎を体験すること」 です。
商品管理(在庫管理)は、初心者がプログラミングを学ぶうえで非常に良い題材です。 理由はシンプルで、
- 商品という“現実のモノ”をプログラムで表現する
- 在庫数や価格など、扱うデータがわかりやすい
- クラス(オブジェクト指向)の学習に最適
- 後日「検索」「並び替え」「入庫・出庫」「売上管理」などに発展できる
というメリットがあるからです。
1日目で作るアプリのイメージ
- 商品名・価格・在庫数を入力
- 商品オブジェクトを作成
- ファイルに保存
- 複数の商品を登録できる
この流れを作ることで、 変数・条件分岐・繰り返し・関数・ファイル操作・クラス をすべて体験できます。
クラスとは何か(初心者向けにかみ砕いて)
クラスとは 「データ(変数)と処理(関数)をひとまとめにした設計図」 です。
商品管理では、商品という“ひとまとまりの情報”を扱います。
例:
- 商品名
- 価格
- 在庫数
これらをバラバラの変数で扱うと管理が大変です。 そこでクラスを使います。
商品クラスを作る(最重要)
class Product:
"""
商品を表すクラス
"""
def __init__(self, name, price, stock):
self.name = name # 商品名
self.price = price # 価格
self.stock = stock # 在庫数
def to_text(self):
"""
商品情報をテキスト形式に変換する(ファイル保存用)
"""
return f"{self.name},{self.price},{self.stock}\n"
Python深掘りポイント
__init__は「商品を作るときに呼ばれる特別な関数」self.nameのように、商品ごとのデータを持てるto_text()は「ファイル保存用の文字列を作る関数」
クラスを使うことで、商品データがひとまとまりになり、 扱いやすさが一気に向上します。
商品を登録する関数
def add_product():
"""
商品を登録してファイルに保存する関数
"""
name = input("商品名を入力してください: ")
price = int(input("価格を入力してください(円): "))
stock = int(input("在庫数を入力してください: "))
product = Product(name, price, stock)
with open("products.txt", "a", encoding="utf-8") as f:
f.write(product.to_text())
print("商品を登録しました。products.txt を確認してみてください。")
Python深掘りポイント
- 商品名・価格・在庫数を変数に保存
Product()で商品オブジェクトを作成to_text()でファイルに保存できる形式に変換"a"モードで追記保存
商品一覧を表示する関数
def show_products():
"""
登録された商品一覧を表示する関数
"""
try:
with open("products.txt", "r", encoding="utf-8") as f:
print("=== 商品一覧 ===")
for line in f:
name, price, stock = line.strip().split(",")
print(f"商品名: {name} / 価格: {price}円 / 在庫: {stock}")
print("================")
except FileNotFoundError:
print("まだ商品が登録されていません。")
Python深掘りポイント
- ファイルがない場合は
FileNotFoundErrorをキャッチ split(",")で商品データを分解- 繰り返し処理で全商品を表示
メニューを表示する関数
def show_menu():
print("------------------------------")
print("商品管理アプリ 1日目 メニュー")
print("1: 商品を登録する")
print("2: 商品一覧を表示する")
print("3: 終了する")
print("------------------------------")
Pythonmain(アプリ全体の流れ)
def main():
print("Python 商品管理(在庫管理)アプリ 1日目")
print("商品を登録して一覧表示できる最小のアプリを作ります。")
while True:
show_menu()
choice = input("番号を入力してください(1〜3): ")
if choice == "1":
add_product()
elif choice == "2":
show_products()
elif choice == "3":
print("アプリを終了します。おつかれさまでした。")
break
else:
print("1〜3 の番号を入力してください。")
Python1日目の完成コード(まとめ)
class Product:
def __init__(self, name, price, stock):
self.name = name
self.price = price
self.stock = stock
def to_text(self):
return f"{self.name},{self.price},{self.stock}\n"
def add_product():
name = input("商品名を入力してください: ")
price = int(input("価格を入力してください(円): "))
stock = int(input("在庫数を入力してください: "))
product = Product(name, price, stock)
with open("products.txt", "a", encoding="utf-8") as f:
f.write(product.to_text())
print("商品を登録しました。")
def show_products():
try:
with open("products.txt", "r", encoding="utf-8") as f:
print("=== 商品一覧 ===")
for line in f:
name, price, stock = line.strip().split(",")
print(f"商品名: {name} / 価格: {price}円 / 在庫: {stock}")
print("================")
except FileNotFoundError:
print("まだ商品が登録されていません。")
def show_menu():
print("------------------------------")
print("商品管理アプリ 1日目 メニュー")
print("1: 商品を登録する")
print("2: 商品一覧を表示する")
print("3: 終了する")
print("------------------------------")
def main():
print("Python 商品管理(在庫管理)アプリ 1日目")
print("商品を登録して一覧表示できる最小のアプリを作ります。")
while True:
show_menu()
choice = input("番号を入力してください(1〜3): ")
if choice == "1":
add_product()
elif choice == "2":
show_products()
elif choice == "3":
print("アプリを終了します。")
break
else:
print("1〜3 の番号を入力してください。")
if __name__ == "__main__":
main()
Python1日目で本当に掴んでほしいこと
● クラスは「データと処理をひとまとめにする設計図」
商品という“ひとまとまりの情報”を扱うのに最適です。
● ファイル操作は「アプリに記憶を持たせる技術」
商品データが残ることで、アプリが“道具”として使えるようになります。
● 関数を分けることでアプリが整理される
登録・表示・メニュー・main が役割ごとに分かれ、理解しやすくなります。
次のステップ(2日目の予告)
2日目では、商品管理アプリをさらに育てて、
- 商品検索
- 在庫の増減(入庫・出庫)
- 商品データの編集
という「商品管理アプリの基本形」を完成させていきます。

