在庫管理ツール
Orla やあ。貨物室がめちゃくちゃなんだ。何が切れているかも分からないまま切らしてしまったり、十分にあるものを重複して発注したりしている。ちゃんとした在庫管理ツールが必要だ。アイテムを追加して、数量を更新して、セッションの合間にすべてをファイルに保存する。クルー全員が実際に使えるようなものをね 📦
作るもの
Commands: add / update / list / remove / quit
> add
Item name: Widget A
Quantity: 100
Price: 2.49
Added.
> list
Widget A qty: 100 £2.49 each total value: £249.00
> update
Item: Widget A
New quantity: 85
Updated.
> quit
Inventory saved to inventory.json.必要なもの
- クラスとオブジェクト — 個々の製品を表す
Itemクラスと、コレクションを管理するInventoryクラス - ファイルと例外 — JSONへの保存と読み込み、初回実行時にファイルが存在しない場合の処理
- 辞書とリスト — クラスでラップする前と後の基礎データ
- 数値と算術 — アイテムごとの合計金額の計算
- 制御フローと関数 — コマンドループ、コマンドごとに1つの関数
ヒント
Itemは3つの属性を持つクラスです。 名前、数量、価格。Inventoryは Item のリストを管理し、add、update、remove、list のメソッドを公開します。
終了時に保存し、起動時に読み込みます。 初回実行時にファイルが存在しなくてもスクリプトがクラッシュしないように、ファイルの読み込みを try/except で囲んでください — 代わりに空の在庫で開始します。
合計金額は表示の問題です。 表示時に quantity × price を計算します。属性として保存する必要はなく、常に導出可能です。
さらに進める
コア機能が動作するようになったら:
- 在庫不足アラート。 リストを表示するとき、数量が定義した閾値を下回ったアイテムに印を付けます。
- 検索。 部分一致で名前からアイテムを検索する
searchコマンドを追加します。 - レポートのエクスポート。 現在の在庫のプレーンテキスト概要を
.txtファイルに書き出すexportコマンドを追加します。

