购物车流程图:
![]()
具体代码:
#创建商品列表
product_list=[
("iphone",5800),
("bike",800),
("mac pro", 10800),
("book", 100),
("coffee", 38),
("watch", 6800),
]
#创建临时购物车
shopping_list = []
#输入工资,注意需要格式转换
salary = input("input your salary :")
if salary.isdigit() :
salary = int(salary)
while True :
#打印所有的商品列表,并标注商品序列号;
for index,itme in enumerate(product_list) :
print(index,itme)
#选择需要的商品
user_choice = input("请选择您需要购买的商品序号,如无需购买请输入'q'退出:")
#判断选择的商品是否存在(根据序列号判断)
if user_choice.isdigit():
user_choice = int(user_choice)
#len:长度或元素的统计,这里是根据商品列表这个元素的长度来进行判断输入序列号是否存在;
if user_choice < len(product_list) and user_choice >= 0 :
#提取购买的商品及商品序列号
p_itme = product_list[user_choice]
#判断所购买的商品价格是否<=工资,如果小于加入购物车继续下一个循环,如果大于则进行友情提示;
if p_itme[1] <= salary :
shopping_list.append(p_itme)
#每次购买商品成功后,将所购买商品的金额相加,得出余额以便下个新循环将商品价格与之对比是否能购买;
salary -= p_itme[1]
print("Added %s into shopping cart ,you current balance is \033[31;1m%s\033[0m" %(p_itme,salary))
else:
#\033[32;1m(XX)\033[0m 表示将xx调整成32对应的颜色;
print('\033[32;1m您的余额为:[%s],无法购买此商品,请重新挑选!\033[0m'% salary)
#退出时候,打印购物车列表和余额;
elif user_choice == "q":
print("----购物车列表---")
for p in shopping_list:
#由于P这个变量的格式是元组'tuple',需要将这个变量格式转换后才能对其单独打印颜色;
p = list(tuple(p))
print('\033[35;1m%s\033[0m' %p)
print("Your current balance:" , salary)
exit()
else:
print("invalid option")