需求:python
如下代碼實現的功能與思路:git
功能: app
(1)預算金額控制,只能輸入大於0的數字
(2)商品格式化打印
(3)選擇完成要買的商品後,提示用戶再次確認,確認後開始計算用戶餘額是否大於等於商品價格,價格正確後則加入購物車
(4)輸入q則進行結算,結算時將重複的商品進行合併,顯示個數,並計算消費總額和餘額ide
思路:函數
(1)商品打印經過嵌套列表實現spa
(2)購買商品是隻須要比較用戶餘額和商品價格便可,若是比商品金額打就把這個商品加入到一個列表中code
(3)結算時計算用戶購物車列表便可blog
流程圖:ip
使用方法:utf-8
執行環境:Python3.5
執行方法,執行執行便可
代碼:
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 import time 5 6 List_items = [ ["iPhone4",100],["iPhone5",200],["iPhone6",300],["iPhone7",4000],["Python",10000],] 7 User_shopping_cart = [] 8 9 def in_money(): 10 ''' 11 判斷用戶輸入金額的函數 12 ''' 13 global user_in_money 14 while True: 15 user_in_money = input("Please enter initial funds:").strip() 16 if user_in_money.isdigit(): 17 if int(user_in_money) > 0: 18 while True: 19 print_lists() 20 else: 21 print("\033[31mInput Error!\033[0m") 22 else: 23 print("\033[31mInput Error!\033[0m") 24 25 def print_lists(): 26 ''' 27 獲取用戶輸入的編號,調用結算模塊 28 :return: 29 ''' 30 print("Product List".center(40,"-")) 31 Spaces = " "*2 32 for Product_info in List_items: 33 Underlined = 20-len(Product_info[0]) 34 print(Spaces,List_items.index(Product_info)+1,Spaces,Product_info[0],"."*Underlined,Product_info[1]) 35 print("-"*40) 36 37 in_Numbering = input("Please enter the product number,[q]exit billing:").strip() 38 if in_Numbering.isdigit(): 39 if int(in_Numbering) > 0 and int(in_Numbering)<= len(List_items): 40 Transaction_Calculations(in_Numbering) 41 else: 42 print("\033[31mThe item number does not exist!\033[0m") 43 else: 44 if in_Numbering == "q": 45 settlement() 46 else: 47 print("\033[31mInput Error!\033[0m") 48 49 def Transaction_Calculations(Numbering): 50 ''' 51 加入購物車模塊,判斷用戶餘額是否足夠購買商品 52 ''' 53 global user_in_money 54 user_in_money = int(user_in_money) 55 Numbering = int(Numbering) 56 Pu_confirmation = input("Product \033[32m%s\033[0m Whether to add to cart(y/n):"%List_items[Numbering-1][0]).strip() 57 if Pu_confirmation == "y": 58 if user_in_money >= List_items[Numbering-1][1]: 59 User_shopping_cart.append(List_items[Numbering-1]) 60 user_in_money = user_in_money - List_items[Numbering-1][1] 61 print("Product %s Added Cart, Current Balance %s¥"%( List_items[Numbering-1][0],user_in_money)) 62 else: 63 print("The balance is insufficient, the commodity price \033[31m%s\033[0m¥,lacks \033[31m%s\033[0m¥"%(List_items[Numbering-1][1],List_items[Numbering-1][1]-user_in_money)) 64 else: 65 print("\033[31mNot added to cart\033[0m") 66 67 def settlement(): 68 ''' 69 結算模塊 70 ''' 71 if len(User_shopping_cart) == 0: 72 print("Shopping Cart There are no products, thank you patronage goodbye") 73 exit() 74 else: 75 print("Shopping list".center(50,"-")) 76 consumption = 0 77 new_user = [] 78 [new_user.append(i) for i in User_shopping_cart if not i in new_user] 79 for user_cart in new_user: 80 number = User_shopping_cart.count(user_cart) 81 settlement_un = 15-len(user_cart[0]) 82 to_settlement_un = 25 - settlement_un - len(str(user_cart[1])) - len(user_cart[0]) 83 consumption += user_cart[1]*number 84 print(" "*5,user_cart[0],"."*settlement_un,user_cart[1],"¥","."*to_settlement_un,"%s個"%(number)) 85 times = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time())) 86 print(times.center(50,"-")) 87 print("Shopping cost \033[32m%s\033[0m¥, Current balance \033[32m%s\033[0m¥,Thank you to patronize!".center(50,"-")%(consumption,user_in_money)) 88 exit() 89 90 if __name__ == "__main__": 91 in_money()