python實現簡單購物車
阿新 • • 發佈:2019-01-30
#Encoding = UTF-8 ''' @author:xianyt @vertion:python3 @date:20180723 ''' ''' 21、 模擬實現選購商品 1) 列出所有商品的編號、名稱和價格 2) 選擇多個商品 3) 檢視已經選擇的商品 單價 小計 和 總價 4) 支付(輸入實付金額、折扣,輸出購物清單、總計、實付、找零) 實現流程和邏輯:: 1) 建立巢狀list,儲存若干商品的編號、名稱和價格 2) 提示選擇項 1-》查詢商品, 2-》結算, 3-》退出 3) 查詢商品功能: i) 顯示商品列表 ii) 提示 1-》選購商品 2-》加入購物車 2-》參考購物車 3-》返回上一級 iii) 選擇選購商品,提示輸入商品編號,新增成功,進入ii) 4) 結算功能: i) 顯示選購商品列表 ii) 輸入實付金額和折扣 iii) 計算結果 5) 退出功能:退出程式 ''' import sys ''' 實現顯示所有商品列表 ''' def viewGoodList(): print("序號\t商品編號\t商品名稱\t單價") index = 1; for goodList in goods: print(index, "\t", goodList[0], '\t', goodList[1], '\t', goodList[2]) index += 1 ''' 查詢buyNumber在商品列表中的位置,不存在返回-1 ''' def findGoodNum(buyNumber): index = 0 for good in goods: if good[0] == buyNumber: return index index += 1; return -1 ''' 加入購物車,需要輸入引數(商品編號,數量) ''' def buyGood(): while True: buyNumber = input("請輸入想要購買商品的編號") if findGoodNum(buyNumber) == -1: print("請輸入正確的商品編號!") continue while True: #判斷輸入數量是否是數值型資料 buyCount = input("請輸入商品的數量") if buyCount.isdigit(): break else: print("請輸入正確的數字型資料!") buyCount = int(buyCount) if shopCar.__contains__(buyNumber): shopCar[buyNumber] = shopCar.get(buyNumber) + buyCount else: shopCar.update({buyNumber:buyCount}) print("********已成功更新購物車***********") conti = input("是否繼續加入商品,退出按f/F鍵,按任意鍵繼續") if conti == 'f' or conti == 'F' : break; ''' 檢視購物車,列印輸出shopCar裡的商品編號及數量 ''' def lookGood(): print("序號\t\t商品編號\t\t商品名稱\t\t單價\t\t數量") index = 1; TempGoods = [] print(shopCar.values()) for shopCarValue in shopCar.keys(): TempGoods = goods[findGoodNum(shopCarValue)] print(index, '\t\t', shopCarValue, '\t\t', TempGoods[1], '\t\t', TempGoods[2], '\t\t', shopCar.get(shopCarValue)) index += 1 ''' 實現查詢商品 ''' def searchGoods(): while True: print('查詢選單,請輸入選擇項:1)查詢商品, 2)新增購物車, 3)檢視購物車, 4)返回上一級') schoice = input() if schoice == '1': viewGoodList(); elif schoice == '2': buyGood() elif schoice == '3': lookGood() elif schoice == '4': break else: print('請輸入正確的選項!') ''' 結算商品 ''' def account(): if not shopCar: print("購物車為空,快去商城逛逛吧") return -1; totalPrice = 0; lookGood(); for shopCarValue in shopCar.keys(): tempGoods = goods[findGoodNum(shopCarValue)] totalPrice += tempGoods[2] * shopCar.get(shopCarValue) print("\n總計:", round(totalPrice,2)); while True: money = input("請輸入錄入金額:") if not money.isdigit(): print("請輸入數字") elif float(money) < totalPrice: print("支付不足!") else: break money = float(money) while True: dicount = input("請輸入折扣") if dicount == 0 or not dicount.isdigit(): print("折扣輸入錯誤") else: break dicount = float(dicount)/100 print('找零:', round(money-totalPrice*dicount,2)) if __name__ == '__main__': #主函式 goods = [ ['001', 'apple', 5], ['002', 'banan', 2] ] shopCar = {} # 利用字典在建立購物車 while True: print("歡迎進入xianyt商城主選單,請輸入選擇項:1)進入選購選單, 2)結算, 3)退出 ") mychioce = input() if mychioce == '1': searchGoods() elif mychioce == '2': account() elif mychioce == '3': sys.exit(-1) else: print("請重新輸入!")
新萌寫程式碼,如果還有什麼不足的地方,歡迎指出