标签:str ges jpg http lis com 技术 choice 用户
# 购物车程序:
# 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("输入用户名不存在")
标签:str ges jpg http lis com 技术 choice 用户
原文地址:http://www.cnblogs.com/1dreams/p/6883789.html