python全棧筆記-day03-chapter2 homework2_shoppingCart
阿新 • • 發佈:2018-12-11
#購物車程式 # 功能要求: # 基礎要求: # 1、啟動程式後,輸入使用者名稱密碼後,讓使用者輸入工資,然後列印商品列表 # 2、允許使用者根據商品編號購買商品 # 3、使用者選擇商品後,檢測餘額是否夠,夠就直接扣款,不夠就提醒 # 4、可隨時退出,退出時,列印已購買商品和餘額 # 5、在使用者使用過程中, # 關鍵輸出,如餘額,商品已加入購物車等訊息,需高亮顯示 # 擴充套件需求: # 1、使用者下一次登入後,輸入使用者名稱密碼,直接回到上次的狀態,即上次消費的餘額什麼的還是那些,再次登入可繼續購買 # 2、允許查詢之前的消費記錄 username = 'abc' password = '123456' cart_all =[] goods = [ {"name": "電腦", "price": 1999}, {"name": "滑鼠", "price": 10}, {"name": "遊艇", "price": 20}, {"name": "美女", "price": 998} ] count = 0#記錄login次數 while True: cart = [] count_goods = 0 # 記錄該次購物商品次數 input_un = input('Username:') input_pw = input('Password:') if input_un == username and input_pw == password: count +=1 if count == 1: salary = int (input('請輸入您的工資:')) else: print("\033[1;0m您的餘額為\033[0m", "\033[1;0m%s\033[0m" % (salary)) print('-------------商品列表--------------') for index,i in enumerate(goods): print('%s. %s %s' % (index+1,i['name'],i['price'])) exit_flag = False #標誌位 while not exit_flag: purchase = input('請輸入您要購買商品的編號(q(Q):退出,c(C):查詢消費記錄):') if purchase.isdigit():#判斷輸入是否數字 num = int(purchase) if num > 0 and num <= len(goods):#判斷輸入的數字在商品編號的範圍內 if salary >= goods[num - 1]['price']:#判斷工資是否足夠支付該商品 if count_goods == 0: cart_all.append(cart) cart.append(goods[num - 1]) count_goods += 1 salary -= goods[num - 1]['price'] print("\033[1;0m購買成功!您的餘額為\033[0m","\033[1;0m%s\033[0m"%(salary))#高亮顯示 else: print("\033[1;0m購買失敗!您的餘額不足!\033[0m") else: print("\033[1;0m該編號沒有對應商品\033[0m") elif purchase == "c" or purchase == "C":#查詢消費記錄 if len(cart_all) == 0: print("\033[1;0m消費記錄為空\033[0m") else: num_cart_all = 0#用於規範編號 num_cart = 0#用於規範編號 print('\033[1;0m-------------消費記錄--------------\033[0m') for i in cart_all: num_cart_all = num_cart for index, k in enumerate(i): print('%s. %s %s' % (index+1+num_cart_all, k['name'], k['price'])) num_cart = index+1+num_cart_all print('\033[1;0m-------------end--------------\033[0m') elif purchase == "q" or purchase == 'Q': if len(cart) != 0: print('\033[1;0m-------------您已購買以下商品--------------\033[0m') for index,i in enumerate(cart_all[-1]): print('%s. %s %s' % (index+1,i['name'],i['price'])) exit_flag = True print('\033[1;0m-------------end--------------\033[0m') else: exit_flag = True else: print("\033[1;0m輸入錯誤\033[0m") print("\033[1;0m您的餘額為\033[0m","\033[1;0m%s\033[0m"%(salary)) print("謝謝惠顧,歡迎下次光臨!") else: print('使用者名稱或密碼錯誤')