簡易版購物車:
1) 商品有列表存儲,每個商品的屬性用字典存儲
2)用戶輸入商品編號,以及商品數量,這些商品被加入購物車
3)相同的商品,在購物車進行合併,數量相加
3)用戶退出挑選商品,自動進行結賬
4)結賬之後,商品列表中對應商品的數量減少,同時商品列表輸出在控制檯上
# -*- coding: utf-8 -*-
# @File : 簡易購物車.py
# 描述 : 使用字典,列表等簡單模擬商品加入購物車
# @Time : 2020/5/28 19:05
# @Author : 崔
# @versions : 1.0
# 列表存放商品,每個商品的屬性用字典存儲
goods = [{'編號': 'B686', '名稱': '聯想電腦', '價格': 6000, '數量': 300},
{'編號': 'B903', '名稱': '外星人電腦', '價格': 12000, '數量': 100},
{'編號': 'B987', '名稱': '惠普電腦', '價格': 4599, '數量': 1000},
{'編號': 'B990', '名稱': '小米筆記本', '價格': 5000, '數量': 239}]
carts = [] # 購物車
# 展示商品列表
while True:
print("{:<10}\t{:<10}\t{:>6}\t{:>10}".format('編號', '名稱', '價格', '數量'))
for good in goods:
print("{:<10}\t{:<10}\t{:<10}\t{:<10}".format(good['編號'], good['名稱'], good['價格'], good['數量']))
Id = input("請輸入Id選擇商品,輸入0退出:")
# 退出
if Id == '0':
break
# 如果輸入的編號不在商品列表裏,重新輸入
for good in goods:
if Id == good['編號']:
stock = good['數量'] # 顯示當前選擇商品的數量
break
else:
print("你輸入的商品不存在,請重新選擇商品")
continue # 重新開始下一次循環
if stock == 0:
print("商品已售空,請等待商品上架,重新選擇")
continue
while 1: # 死循環,直到輸入正確的數量
num = int(input("請輸入你選擇的商品的數量:"))
if num < 0 or num > stock:
print("你輸入的數量不合法")
continue
else:
break
for good in carts:
if Id == good['編號']:
good['數量'] += num
break
else:
for good in goods: # 用於遍歷對應編號的商品名稱,存到購物車中
if good['編號'] == Id:
d1 = {'編號': Id, '名稱': good['名稱'], '數量': num}
carts.append(d1)
# 結賬 價格*數量之和
money = 0 # 總價初始爲0
# 雙重循環,用於查詢價格,計算總價
for wares in carts:
for good in goods:
if wares['編號'] == good['編號']:
money += good['價格'] * wares['數量']
good['數量'] -= wares['數量']
break
print(carts) # 輸出購物車的商品
print(f"你需要支付:{money}元錢") # 需要支付的錢
# 輸出當前商品列表中,商品的數量
print("{:<10}\t{:<10}\t{:>6}\t{:>10}".format('編號', '名稱', '價格', '數量'))
for good in goods:
print("{:<10}\t{:<10}\t{:<10}\t{:<10}".format(good['編號'], good['名稱'], good['價格'], good['數量']))
測試