#1、输出欢迎界面还有登录注册菜单 # 1、登录 # 2、注册 # 保留用户信息,目前做不到固话,先注册,注册成功之后再选择登录进去 # 用户信息 - 用户名, 密码 , 初始金额 #2、登录成功之后,又弹出菜单 # 1、查看商品信息 # 2、购买商品,将商品加入购物车 # 3、查看和结算购物车 # 4、退出 # 完善三乐购物系统 # ·所有用户存放在Excel中(用户名,密码,余额) # ·定义装饰器login_required,给需要的功能添加装饰器 # ·查看超市物品,不需要登录 # ·购物及查看余额,需要登录 # ·先验证用户是否已经登录(如果用户未登录提示“用户未登录,请登录后重试" # .转到功能菜单 import xlsxwriter as xw def xw_toExcel(data, fileName): # xlsxwriter库储存数据到excel workbook = xw.Workbook(fileName) # 创建工作簿 worksheet1 = workbook.add_worksheet("sheet1") # 创建子表 worksheet1.activate() # 激活表 title = ['用户名', '密码', '余额'] # 设置excel表头 worksheet1.write_row('A1', title) # 从A1单元格开始写入表头 index = 2 # 从第二行开始写入数据 for i in user_data: for data in i: # print(data) print(data,i[data],end="\t") # print(i[data]["passwd"]) # print(i[data]["余额"]) insertUser = [data, i[data]["passwd"], i[data]["money"]] row = 'A' + str(index) worksheet1.write_row(row, insertUser,) print("写入第", index, "行") index += 1 workbook.close() # 关闭表 user_data = [ {'root': {'passwd': 123456, 'money': 500}, 'admin': {'passwd': 255278, 'money': 1000}, 'sanchuang': {'passwd': 249583245, 'money':5000}, 'sanchuang1': {'passwd': 1008611, 'money':5000}} ] fileName = '用户.xlsx' xw_toExcel(user_data, fileName) #### user = {'root': {'passwd': '123456', 'money': '500'}} goods_list = {"no1":{"name": "apple", "price": 10}, "no2":{"name": "watermelon", "price": 30}, "no3":{"name": "banana", "price": 20} } # 装饰器 def login_required(func): def inner(*args,**kwargs): if username in user: print("用户成功登录!") result = func(*args,**kwargs) return result else: print("用户未登录,请登录!") return inner # 登陆 @login_required def login(username, passwd): if username in user and user[username]['passwd'] == passwd: return True # 注册 @login_required def register(username, passwd, money): if username in user: print("用户名已存在!请重新输入!") elif username == exit: exit() else: user[username] = {"passwd":passwd, "money":money} print(f"{username}注册成功!余额{user[username]['money']}!") print(user) # 不登录查看商品信息 -->不用装饰器 def goods_view(): print('==========/今日商品信息/===========') print(f"{'商品编号':<7}{'商品名称':<10}{'单价':<7}") for item in goods_list: print(f"{item:<10}{goods_list[item]['name']:<12}{goods_list[item]['price']:<10}") print('=================================') # 购物车、结算 shopping_car = {} sum_price = 0 @login_required def good_choose(goods_no): global sum_price, money1 if goods_no in goods_list: sum_price += int(goods_list[goods_no]['price']) shopping_car.update({goods_list[goods_no]['name']: {'单价': goods_list[goods_no]['price'], '总价': sum_price}}) print(f"购物车商品:{shopping_car},当前加入:{goods_list[goods_no]['name']},单价:{goods_list[goods_no]['price']}") elif goods_no == "exit": exit() elif goods_no == 'r' or goods_no == 'R': print(f"开始结算,购物信息:{shopping_car},需要支付{sum_price}") money1 = int(user[username]['money']) if money1 >= sum_price: money1 -= sum_price print("当前账户余额:", money1) else: print("余额不足,是否充值?") print("1.充值") print("2.放弃购物") option1 = int(input("请您选择: ")) if option1 == 1: return topup() elif option1 == 2: exit() else: print("输入错误,请重新输入") else: print("请正确输入!") # 充值 @login_required def topup(): print("欢迎充值!") upmoney = int(input("请输入您要充值的金额:")) user[username]['money'] = money1 + upmoney print("充值成功!") print(f"当前余额:{user[username]['money']}") return good_choose() # 主程序 username = " " print("欢迎进入三乐购物系统".center(50, "*")) while 1: print("1、登陆".center(40)) print("2、注册".center(40)) print("3、查看今日商品".center(40)) option = input("请输入你的选择:") if option == '1': username = input("请输入用户名:") passwd = input("请输入密码:") if login(username, passwd): print("登陆成功!") print("您当前余额为:", user[username]['money']) print("1、选购商品".center(40)) print("2、退出".center(40)) option2 = input("请输入你的选择:") if option2 == "1": goods_view() while 1: goods_no = input("请输入商品编号(按r买单,exit退出):") good_choose(goods_no) else: print("登陆失败!") elif option == '2': username = input("请输入用户名:") passwd = input("请输入密码:") money = input("请输入金额:") register(username, passwd, money) elif option == '3': goods_view()
Python简单实现网上购物系统
于 2022-06-09 21:10:26 首次发布