我心目中的Dream-購物車
阿新 • • 發佈:2018-11-09
功能要求:
1.要求使用者輸入自己擁有的總資產,例如:30000
2.顯示商品列表的序號,商品名稱,商品價格,讓使用者根據序號選擇商品,然後加入購物車
例如:
1 Macbook 12000
2 Logines 8730
3 Villa 650000
3.使用者可以多次購買商品
4.使用者輸入q退出|輸入n結算
5.結算的時候如果商品總額大於總資產,提示賬戶餘額不足,否則,購買成功。
trades = [
{"trade_name": "Macbook", "value": 12000},
{"trade_name": "Gucci-glasses", "value": 6388},
{"trade_name": "Logines", "value": 8730},
{"trade_name": "Girlfriend", "value":23000},
{"trade_name": "Tesla", "value": 476000},
{"trade_name": "Diamond-ring", "value": 18800},
{"trade_name": "Villa", "value": 6500000},
]
trades = [ {"trade_name": "Macbook", "value": 12000}, {"trade_name": "Gucci-glasses", "value": 6388}, {"trade_name": "Logines", "value": 8730}, {"trade_name": "Girlfriend", "value":23000}, {"trade_name": "Tesla", "value": 476000}, {"trade_name": "Diamond-ring", "value": 18800}, {"trade_name": "Villa", "value": 6500000}, ] flag = 1 shopping_cart = {} usr_fund = 0 while flag: fund = input('尊敬的客戶,請輸出您的資產: ').strip() if fund.isdigit(): usr_fund += int(fund) # 得到使用者的總資產 break else: print('您輸入的金額有誤,請重新輸入') while flag: for i in trades: print(range(len(trades)),i['trade_name'],i['value']) # 取得商品序號,商品和價錢 res = input('請您輸入商品序號或者N/Q結算或者退出: ').strip() if res.upper() =='Q': # 執行退出操作 exit('有需要再來光顧哦!') elif res.upper() =='N': #執行結算操作 while flag: if usr_fund < sum(shopping_cart.values()): # 如果使用者金額小於結算金額 cmd = input(f"您還差{(sum(shopping_cart.values()) - usr_fund)}元才能付款,輸入1/0可以選擇充值或取消購買").strip() if cmd == '1': while 1: cmd_1 = input('充值金額: ').strip() if cmd_1.isdigit(): usr_fund += int(cmd_1) break else: print('您輸入的有誤,請重新輸入') elif cmd == '0': exit('有需要再來光顧哦!') else: print('您輸入的有誤,請重新輸入') else: print('您的購物車現在有: ') for i in shopping_cart: print(i,shopping_cart[i]) print(f"您的餘額還有{usr_fund - sum(shopping_cart.values())}元") break break elif res.isdigit(): #如果使用者輸入的是序號,那就加入購物車 res_1 = int(res) if res_1 - 1 in [range(len(trades)) for i in trades]: #如果使用者輸入的序號在商品列表中 if trades[res_1]['trade_name'] not in shopping_cart: shopping_cart.setdefault(trades[res_1 -1]['trade_name'],trades[res_1 -1]['value']) else: shopping_cart[trades[res_1 -1]['trade_name']] += trades[res_1 -1]['value'] print('\n'f"{trades[res_1 -1]['trade_name']}已新增到購物車,價值{trades[res_1 -1]['value']}元"'\n') else: print('您輸入的有誤,請重新輸入') else: print('您輸入的有誤,請重新輸入')