1.要求
- 写一个python购物车可以输入用户初始化金额
- 可以打印商品,且用户输入编号,即可购买商品
- 购物时计算用户余额,是否可以购买物品
- 退出结算时打印购物小票
2.流程图
3.代码
#!/usr/bin/env python # -*- coding:utf-8 -*- #Author Kevin Liu salary = input("输入工资额:") if salary.isdigit(): #判断输入是不是整数 salary = int(salary) else: exit("输入数字!") print("欢迎光临!".center(50,"-")) exit_flag = True #循环控制 product_list = [ #商品列表 ('IPhone',6600), ('MAC Pro',8000), ('MAC Ari',7000), ('Xiao Mi 5',1999), ('OPPO R9S',2799), ('Coffee',35), ('Tesla',870000), ('BMW 330Lim',340000), ('Giant',2400), ('CK 内裤',240), ] shop_cart = [] #购物车列表,初始为空 while exit_flag is True: print("商品列表".center(60,"-")) for item in enumerate(product_list): index = item[0] product_name = item[1][0] product_price = item[1][1] print(index,'.',product_name,product_price) user_choice = input("[q=quit,c=check]你想买啥?") if user_choice.isdigit(): #判断用户输入是不是数字 user_choice = int(user_choice) if user_choice < len(product_list): #输入不能超过商品列表的额长度 product_item = product_list[user_choice] #用户选中商品 if product_item[1] <= salary: #预算充足,可以买 shop_cart.append(product_item) #商品加入购物车 salary -= product_item[1] #预算减去已选商品 print("[%s]已经加入购物车,当前余额还有\033[31;1m[%s]\033[0m" % (product_item,salary)) #\033[31;1m \033[0m 这个写法是把字符串调成绿色 else: print("当前余额还剩%s,不能买了!" %(salary)) else: if user_choice == 'q' or user_choice == 'quit': #退出购物车,不再购买,输出已经购买列表,输出余额还有多少,退出循环 print("购物车中的商品有".center(60,'*')) for item in shop_cart: print(item) print("End".center(60,'*')) print("余额还有%s" % salary) print("拜拜!") exit_flag = False elif user_choice == 'c' or user_choice == 'check': #查看已经购买的商品列表,并输出余额 print("购物车中的商品有".center(60,'*')) for item in shop_cart: print(item) print("End".center(60,'*')) print("余额还有\033[31;1m[%s]\033[0m" % salary)