# 购物车程序: # 1、启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 # 2、允许用户根据商品编号购买商品 # 3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 # 4、可随时退出,退出时,打印已购买商品和余额 # 5、在用户使用过程中, 关键输出,如余额,商品已加入购物车等消息,需高亮显示 # 6、用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买 # 7、允许查询之前的消费记录 保存用户、密码、余额的文件(user1.txt)
{'alex': ['zs123', 0], 'zs': ['zs123', 0], 'ls': ['zs123', 0]} 保存已购商品信息的文件(shopping_car.txt)
{'alex': [], 'zs': [], 'ls': []}
代码如下:
#定义商品列表product=[ ("Iphone 7 Plus","6500"), ("MacBook ","9900"), ("Apple Watch","3500"), ("BOOK","110"), ("1T hard disk","360"),]#打开两个文件1、存放用户名、密码、余额的文件,2、存放已购商品列表文件with open("user1.txt","r+",encoding="gbk") as user1,\ open("shopping_car.txt","r+",encoding="gbk") as shopping_car: user1_str = user1.readline() #将用户密码文件转换为字符串 user1_dic = eval(user1_str) #将用户密码的字符串转换为字典 shopping_car_str = shopping_car.readline() #将购物车文件转换为字符串 shopping_car_dic = eval(shopping_car_str) #将购物车的字符串转换为字典 #定义一个空的购物车 shopping_new = [] #输入用户名: user = input("请输入用户名:>") #如果用户名在保存用户的字典中,则执行下面代码: if user in user1_dic: passwd = input("请输入密码:>>") #如果密码输入正确则执行下列代码: if passwd == user1_dic[user][0]: if shopping_car_dic[user]: #列表有数据就是True,然后执行下面内容: salary = user1_dic[user][1] shopping_list = shopping_car_dic[user] print("您的余额为:\033[31;1m%s\033[0m"%salary) #查询之前的消费记录 print_list = input("选择是否查询消费记录y/n") if print_list == "y": print("----上次消费记录----") print(shopping_list) user_list = shopping_car_dic[user] sum = 0 for i in user_list: num = i[1] sum += int(num) print("上次总计消费金额:\033[31;1m%s\033[0m"%sum) else: pass wages = int(input("请输入工资:>>>")) else: #列表无数据就是False, wages = int(input("请输入工资:>>>")) while True: for index,product_list in enumerate(product): print(index,product_list) choice = input("请选择购买商品编号>>>") if choice.isdigit(): choice = int(choice) if choice <=4 and choice >=0: shopping_new.append(product[choice]) if wages >= int(product[choice][1]): wages -= int(product[choice][1]) print("您的余额为:>>>\033[31;1m%s\033[0m"%wages) elif wages < int(product[choice][1]): print("您的余额不足,余额为:>>>\033[31;1m%s\033[0m"%wages) else: print("您输入的编号超出范围") elif choice == "q": print("----购买商品列表----") print(shopping_new) print("您的余额为:>>>\033[31;1m%s\033[0m"%wages) #将购物列表写入文件中。 shopping_car_dic[user].extend(shopping_new) shopping_car.seek(0) shopping_car.write(str(shopping_car_dic)) #将余额写入文件中。 user1.seek(0) user1_dic[user][1]=wages user1.write(str(user1_dic)) print("\033[31;1m商品已经放入购物车\033[0m") exit() #如果密码输入不正确则显示密码错误: else: #密码不匹配 print("输入密码错误") #如果用户名不在用户的字典中,则执行下面代码: elif user not in user1_dic: print("输入用户名不存在")