【Python實作】製作簡易的購物車程式(透過List列表集合)
📘 Python 實作|製作簡易的購物車程式
練習目的
這次的練習目標,是熟悉 Python 的 List 列表操作。
- 練習建立空列表。
- 練習使用 append() 將資料加入列表。
- 練習使用 while True 建立可重複輸入的流程。
- 練習使用 break 結束迴圈。
- 練習使用 sum() 計算價格總和。
題目
讓使用者依序輸入商品名稱與商品價格,並把資料裝進 List 裡。 最後印出使用者購買的所有商品名稱,以及所有商品的總價格。
【Python自學】Python集合類型總整理
🧪 完整程式碼
下面是一個簡易購物車程式。使用者可以一直輸入商品,直到輸入 end 為止。
🖥️ 程式執行結果
假設使用者依序輸入 apple、banana、orange,最後輸入 end 結束。
請輸入apple的價格:200
輸入要購買的商品banana
請輸入banana的價格:100
輸入要購買的商品orange
請輸入orange的價格:300
輸入要購買的商品end
['apple', 'banana', 'orange']
[200.0, 100.0, 300.0]
總共買了['apple', 'banana', 'orange'],一共是600.0元
🔎 程式說明
接著把這個購物車程式拆開來看,會更容易理解 List 在這裡扮演的角色。
1. 建立兩個空 List
一開始先建立兩個空列表:
- all_goods:用來存放商品名稱。
- all_prices:用來存放商品價格。
2. 使用 while True 讓使用者一直輸入
while True 代表建立一個無限迴圈。
也就是說,只要沒有遇到 break,程式就會一直重複執行。
3. 輸入 end 時結束購物
這段是結束購物車輸入的條件。
當使用者輸入 end,程式就會執行 break,離開 while 迴圈。
也可以改成 q、exit 或 done,看自己習慣。
4. 輸入商品價格並轉成 float
使用者透過 input() 輸入的內容,預設會是字串。
但價格需要進行加總,所以要用 float() 轉成數字。
這裡也用了 f-string,讓提示文字可以直接帶入商品名稱。
如果 good 是 apple,畫面就會顯示:
5. 使用 append() 把商品和價格加入 List
append() 的功能,是把新的資料加到 List 的最後面。
每輸入一項商品,就把商品名稱加進 all_goods, 並把商品價格加進 all_prices。
| 輸入內容 | 加入的 List | 結果 |
|---|---|---|
| apple | all_goods | ['apple'] |
| 200 | all_prices | [200.0] |
| banana | all_goods | ['apple', 'banana'] |
| 100 | all_prices | [200.0, 100.0] |
6. 印出所有商品與所有價格
當使用者輸入 end 離開迴圈後,程式會印出目前兩個 List 的內容。
7. 使用 sum() 計算總金額
sum() 可以把 List 裡的數字全部加總。
因為 all_prices 裡放的是所有商品價格,所以:
8. 用 f-string 輸出購物結果
最後用 f-string 把購物清單和總金額印出來。
🧭 執行流程整理
用表格整理整個購物車程式的流程。
| 步驟 | 程式做什麼 | 目的 |
|---|---|---|
| 1 | 建立空 List | 準備存放商品名稱與價格。 |
| 2 | 使用 while True | 讓使用者可以重複輸入商品。 |
| 3 | 判斷是否輸入 end | 決定是否結束購物流程。 |
| 4 | 輸入價格並轉成 float | 讓價格可以被加總。 |
| 5 | 使用 append() | 把商品與價格加入 List。 |
| 6 | 使用 sum() | 計算所有商品的總金額。 |
| 7 | 印出購物結果 | 顯示購買清單與總價。 |
💡 小補充:這個寫法的特色
這個版本使用兩個 List,分別存放商品名稱與商品價格。
這種寫法很直觀,初學者也容易理解。
不過如果之後想讓每個商品名稱和價格綁得更緊,也可以考慮使用 Dictionary 或巢狀 List。
例如使用者輸入 abc 當價格,程式會發生錯誤。之後可以再加入 try/except 來防呆。
✅ 小結
這個簡易購物車程式很適合用來練習 Python List,因為購物車本身就是一種「資料一筆一筆加入清單」的情境。
- List:用來儲存多筆商品資料。
- append():把新商品或價格加入列表。
- while True:讓輸入流程持續進行。
- break:在輸入 end 時結束迴圈。
- float():把價格轉成可以計算的數字。
- sum():計算所有商品價格總和。
- f-string:讓輸出文字更好組合。
購物車的核心邏輯就是「輸入商品 → 加入 List → 輸入價格 → 加入 List → 最後加總」。
留言
張貼留言