python練習_購物車(簡版)

 python練習_購物車(簡版)

需求:python

  1. 寫一個python購物車能夠輸入用戶初始化金額
  2. 能夠打印商品,且用戶輸入編號,便可購買商品
  3. 購物時計算用戶餘額,是否能夠購買物品
  4. 退出結算時打印購物小票

 

如下代碼實現的功能與思路: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()
購物車
相關文章
相關標籤/搜索