まとめ:ショッピングカートのエラー
CoddyのPythonジャーニー「ロジックとフロー」セクションの一部。レッスン 66/78。
チャレンジ
中級エラー処理を使用してショッピングカートをシミュレートするプログラムを作成してください。タスクは次のとおりです:
- 顧客の注文を処理する、
handle_shopping_cartという名前の関数を作成する - この関数は、"item:quantity"形式の注文文字列のリストを受け取る
- 各注文を次のように処理する:
- 入力文字列を分割して商品と数量を取得する
- 数量を整数に変換する
- 数量を値として、商品をショッピングカートの辞書に追加する
- 商品がすでにカートに存在する場合は、新しい数量を既存の数量に加算する
- 次の特定のエラーを処理する:
- 入力形式が正しくない場合(コロンがない場合)は、"Invalid format: {order}"を出力する
- 数量が有効な数値でない場合は、"Invalid quantity: {order}"を出力する
- 数量が負の場合は、"Negative quantity not allowed: {order}"を出力する
- 完成したショッピングカートの辞書を返す
形式と負の数量をifで確認してください。数量を整数に変換する場合のみエラーが発生する可能性があるため、except ValueErrorで"Invalid quantity: {order}"を出力します。最後のexcept Exception as eブロックは安全策として残し、そこで"Unexpected error: {e}"を出力してください。
自分で試してみよう
def handle_shopping_cart(orders):
# ショッピングカート用の空の辞書を作成する
cart = {}
# リスト内の各注文を処理する
for order in orders:
try:
# 注文を分割し、形式と数量を確認してからカートに追加する
pass
except ValueError:
# 数量が数値ではなかった
pass
except Exception as e:
# 予期しないものすべて
pass
# 完成したカートを返す
return cartロジックとフローのすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ