購物小程序需求
1、用戶啟動時先輸入工資
2、用戶啟動程序后打印商品列表
3、允許用戶選擇購買商品
4、允許用戶不斷的購買各種商品
5、購買時檢測,余額是否足夠,如果足夠,就直接扣款,否則打印余額不足
6、允許用戶主動退出程序,退出時打印已購買商品列表
流程圖
流程說明:1、輸入當前薪資;2、如果輸入為數字,執行下面步驟,否則重新輸入;3、顯示歡迎信息;4、進入購物車,首先顯示商品列表信息;5、輸入商品對應的編號或者q退出;6、如果輸入的是數字,則再判斷輸入的編號是否在商品編號的范圍內,在編號范圍內時,接下來判斷是否買得起選擇的商品,不在編號范圍內就輸出編號不存在重新輸入;7、如果輸入的為非數字,先判斷是否為q,如果是q則退出購物車,顯示購物清單和余額,如果為非q,則為非法字符,需重新輸入。8、在選擇商品時,可以不斷購買商品并且循環顯示商品清單和購物清單及余額信息。
程序如下:
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # Author:Jack.Lee 4 # FileName: shopping_car.py 5 6 product_list = [ #創建商品列表 7 ('Bike',1300), 8 ('Ipad mini4',2800), 9 ('Huawei P9', 3700), 10 ('Iphone 7',6800), 11 ('Thinkpad X2',7000), 12 ('Dell R920',30000), 13 ('Cayenne car',1000000) 14 ] 15 shopping_car = [] #定義購物車列表,開始為空 16 login_flag = False #退出標志位 17 repeated_input = False 18 #print("\033[34;1m歡迎來到歡樂購商城\033[0m".center(50, '-')) 19 while not repeated_input: 20 salary = input("請輸入你當前的薪資:") 21 if salary.isdigit(): #檢測字符串是否只由數字組成 22 salary = int(salary) #把輸入的轉化為整型 23 print("\033[34;1m歡迎來到歡樂購商城\033[0m".center(50, '-')) 24 while not login_flag: 25 print("商品列表如下所示".center(40,'-')) 26 for item in enumerate(product_list): 27 index = item[0] # 獲取商品序號 28 p_name = item[1][0] # 獲取商品名稱 29 p_price = item[1][1] # 獲取商品價格 30 print(index, '.',p_name, p_price) #打印商品序號,名稱價格 31 choice = input("請選擇要購買商品對應的編號(選擇q結束選購):") 32 if choice.isdigit(): 33 choice = int(choice) 34 if choice < len(product_list) and choice >=0: #判斷輸入的編號是否在產品編號內 35 choice_product = product_list[choice] #獲取對應商品 36 if choice_product[1] <= salary: #當選擇的商品價格是否小于工資,證明買得起商品。 37 shopping_car.append(choice_product) #添加到購物車 38 salary = salary - choice_product[1] #減去購買的商品價格所剩余額 39 print("購物車清單".center(30,'*')) #顯示購物車清單標題 40 for item in shopping_car: #顯示購物車商品清單 41 print(item) 42 print("你當前的余額為%s".center(30,'*')%salary) #顯示當前余額 43 else: 44 print("\033[31;1m你的余額只剩下%s元,不足以購買%s\033[0m"%(salary,choice_product[0])) #如果選擇的商品價格大于余額,顯示余額不足提示 45 else: 46 print("你輸入的編號不存在。") #如果選擇的編號不在商品對應編號的范圍內,提示編號不存在 47 elif choice == 'q': #選擇q退出購物,進入購物清單 48 print("購物車清單".center(30, '*')) 49 for item in shopping_car: 50 print(item) 51 print("你當前的余額為%s".center(30, '*') % salary) 52 login_flag = True #退出整個購物流程 53 else: 54 print("輸入有誤,請重新選擇") 55 repeated_input = True 56 else: # 如果薪水輸入錯誤 57 print("\033[31;1m薪資輸入為非數字,請重新輸入。\033[0m" )
Keep empowering yourself successfully...
浙公網安備 33010602011771號