#!/usr/bin/env python
# -*- coding:utf-8 -*-
'''需求:用户启动时先输入工资
用户启动程序后打印商品列表
允许用户选择购买商品
允许用户不断的购买各种商品
购买时检测余额是否够,如果够直接扣款,否则打印余额不足
允许用户主动退出程序,退出时打印已购商品列表
'''
salary = input("Input your salary:")
if salary.isdigit():
salary = int(salary)
else:
exit("Invalid data type...")
welcome_msg = 'Welcome to Bruce Shopping mall'.center(56,'-')
print(welcome_msg)
product_list = [
('Iphone',5999),
('Camaro',520000),
('Computer',4500),
('Meizu pro7',18.8),
('Mac pro',8900)
]
shop_car = []
exit_flag = False#设置flag标识,方便后面跳出循环
while exit_flag is not True:
#for product_item in product_list:
# p_name,p_price = product_item
print("product list".center(56,'-') )
for item in enumerate(product_list):#枚举函数,获取列表的索引并返回下标加元素按序组成的元组
index = item[0]
p_name = item[1][0]
p_price = item[1][1]
print(index,'.',p_name,p_price)
user_choice = input("[q=quit,c=check]What do you want to buy?:")
if user_choice.isdigit():#肯定是选择商品
user_choice = int(user_choice)
if user_choice < len(product_list):#判断是否是商品清单中的序号
p_item = product_list[user_choice]
if p_item[1]<= salary:#买得起
shop_car.append(p_item)#放入购物车
salary -= p_item[1]#扣款
print("Added [%s] into shop car,your current balance is "
"\033[31;1m[%s]\033[0m"%(p_item,salary) )#输出的信息加色
else:
print("Your balance is [%s], cannot afford this..."%salary)
else:
if user_choice == 'q' or user_choice == 'quit':
print("Purchased products as below".center(40,'*'))
for item in shop_car:
print(item)
print("END".center(40,'*'))
print('Your balance is [%s]'%salary)
print("Bye")
exit_flag = True#跳出while循环
elif user_choice == 'c' or user_choice == 'check':
print("Purchased products as below".center(40,'*'))
for item in shop_car:
print(item)
print("END".center(40,'*'))
print('Your balance is \033[41;1m[%s]\033[0m'%salary)#输出的信息加色