Python_购物车问题

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("用户不存在")

猜你喜欢

转载自www.cnblogs.com/htc-520/p/10807163.html