范围 pen enum product gbk false 数据 sum
- # 购物车程序:# 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("请输入用户名:>")
- #如果用户名在保存用户的字典中,则执行下面代码:
- ifuserin user1_dic:
- passwd = input("请输入密码:>>")
- #如果密码输入正确则执行下列代码:
- ifpasswd == user1_dic[user][0]:
- ifshopping_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")
- ifprint_list =="y":
- print("----上次消费记录----")
- print(shopping_list)
- user_list = shopping_car_dic[user]
- sum = 0
- foriin 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:
- forindex,product_listin enumerate(product):
- print(index,product_list)
- choice = input("请选择购买商品编号>>>")
- if choice.isdigit():
- choice = int(choice)
- ifchoice <=4andchoice >=0:
- shopping_new.append(product[choice])
- ifwages >= int(product[choice][1]):
- wages -= int(product[choice][1])
- print("您的余额为:>>>\033[31;1m%s\033[0m"%wages)
- elifwages < int(product[choice][1]):
- print("您的余额不足,余额为:>>>\033[31;1m%s\033[0m"%wages)
- else:
- print("您输入的编号超出范围")
- elifchoice =="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("输入密码错误")
- #如果用户名不在用户的字典中,则执行下面代码:
- elifusernot in user1_dic:
- print("输入用户名不存在")
作业 - 购物车程序
来源: http://www.bubuko.com/infodetail-2080253.html