import os
goods = [ {"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998}, ] # 基本需求:75% # 1. 启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表 # 2. 允许用户根据商品编号购买商品 # 3. 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 # 4. 可随时退出,退出时,打印已购买商品和余额 # 5. 在用户使用过程中, 关键输出,如余额,商品已加入购物车等消息,需高亮显示 # # 升级需求:10% # 1. 用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买 # 2. 允许查询之前的消费记录
# account_data = { # "shopping_list": [], # "account": ["alex", "abc123", 0], # "blance": 8000 # }
将用户的账号,密码和其他信息单独存入到一个文件夹中;为了防止用户数据发生错误,每个用户的信息用单独的一个.txt文件存放。
用户信息存放格式如下:
{ "shopping_list": [], "account": ["mary", "abc", 0], "blance": 12000 }
python程序代码如下:
username = input("Username:").strip()password = input("Password:").strip()
account_filename = "account/%s" % username #用户信息存放在account文件夹下面 if os.path.isfile(account_filename): f = open(account_filename, "r") # 读取文件名称 account_data = eval(f.read()) #读取文件数据
if account_data["account"][1] == password:
while True: for index, i in enumerate(goods): # 枚举商品 print(index, i["name"], i["price"]) choice = input("请选择商品:").strip() if choice.isdigit(): choice = int(choice) if 0 <= choice < len(goods): # 取出商品,判断金额够不够 p = goods[choice] if p["price"] <= account_data["blance"]: # 买得起 account_data["shopping_list"].append(p) account_data["blance"] -= p["price"] print("已把%s加入购物车,当前余额为\033[31;1m%s\033[0m" % (p, account_data["blance"])) else: print("余额不足,请有钱了在来买东西") else: print("商品不存在") elif choice == "q": print("------shopping list-------") for i in account_data["shopping_list"]: print(i) f = open(account_filename, "w") f.write(str(account_data)) f.close() print("余额还有%s" % account_data["blance"]) exit("欢迎再次光临") else: print("密码错误!") else: print("用户不存在")