购物小程序需求
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" )

 

posted on 2016-11-25 16:01  隔江游来一只鹅  阅读(187)  评论(0编辑  收藏  举报