1、需求分析:
函数只是封装功能 接收参数返回结果 不要让函数做跳转。
1、输出欢迎界面还有登录注册菜单
1、登录
2、注册
保留用户信息,目前做不到固话,先注册,注册成功之后再选择登录进去
用户信息-用户名、密码、初始金额
2、登录成功之后,又弹出菜单
1、查看商品信息
2、购买商品,将商品加入购物车
3、查看和结算购物车
4、退出
#1、登录页面 def login(username,passwd): # print("登录成功") # pass if username in user and user[username]['passwd'] == passwd: return True #2、注册页面 def register(username,passwd,money): # print("注册成功!") # pass if username in user: print("用户名已存在,请重新输入!") # if money <= float(user[username]['余额']): else: user['root'] = {'passwd': passwd,'余额':money} print(f"{username}已经注册成功!") print(f"{'用户名':<8}{'密码':<10}{'金额':<7}") if money.isdigit(): # money = float(money) user['root']['余额'] = float(user['root']['余额'] + money) # user[username]['余额'] = float(user[username]['余额'] + money) print(f"{username}用户充值成功,你的充值金额为{money},目前余额为:{user['root']['余额']}") print(user['root']) else: print("充值失败,请重新输入!") #3、开始购物 #3.1查看商品信息 def good(): print("查看商品信息".center(50,"-")) print(f"{'商品编号':<10}{'商品名称':<10}{'单价':<5}") for i in shop: #从shop中取出商品编号、商品名称、单价 print(f"{i:<10}{shop[i]['name']:>6}{shop[i]['price']:>15}") shopping_cart = {} #定义一个采购清单,把购买物品的信息都写入进去 #3.2购买商品,将商品加入购物车 def shopping(number,quantity):#定义 shopping_cart[number] = shopping_cart.get(number,0)+ quantity print("商品成功加入购物车") print(f"{'商品编号':<10}{'数量':<10}") print(f"{number:<10}{quantity:>6}") #3.3查看和结算购物车 #查看购物车 def checking_cart(): # global sum_price print("购物车".center(30,"=")) print(f"{'商品编号':<10}{'商品名称':<10}{'单价':<5}{'数量':>10}") for i in shopping_cart: #定义一个采购清单,把购买物品的信息都写入进去 print(i) print(f"{i:<10}{shop[i]['name']:>6}{shop[i]['price']:>10}{shopping_cart[i]:>15}") print("-"*50) #结算购物车 # sum_price = shopping_cart[quantity] * float(shop[number]['price']) shopping_cart1 = {} #选购完的商品的购物车 sum_price = 0 #单个购物车商品总价初始值为0 sum_price1 = 0 #多个购物车消费金额初始为0 def paying_cart(pay): global sum_price,sum_price1 for i in list(shopping_cart): sum_price += shopping_cart[i] * float(shop[i]['price']) if sum_price <= float(user[username]['余额']): user[username]['余额'] = float(user[username]['余额']) - sum_price print(f"购买成功,总计为{sum_price},余额为{float('%.2f' % user[username]['余额'])}") shopping_cart1.update(shopping_cart.copy())#将单次购买的购物车中的所有商品存入结算购物车中 shopping_cart.clear()#结算成功,清空购物车 sum_price1 += sum_price sum_price = 0 #购物车商品总价重置为0 else: print("余额不足,请重新充值") #4、退出 def exit(): global sum_price1,balance print("谢谢惠顾,欢迎下次光临".center(50,"#")) print("-"*50) print(f"{'商品编号':<10}{'商品名称':<10}{'单价':<5}{'数量':<10}") for i in shopping_cart1: print(f"{i:<10}{shop[i]['name']:>6}{shop[i]['price']:>10}{shopping_cart1[i]:<15}") print("=="*50) print(f"您一共消费:{sum_price1},余额:{float('%.2f' % user[username]['余额'])}") #主页面 print("欢迎进入三乐购物系统".center(50,"*")) user = {'root': {'passwd': '123456', '余额': '500'}, 'admin': {'passwd': '255278', '余额': '1000'}, } shop = {'F00001':{'name':'苹果','price':1.2}, 'F00002':{'name':'香蕉','price':5.0,}, 'F00003': {'name':'梨子','price':'6.5'}} while True: 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(f"登录成功!,目前的你的余额为{user['root']['余额']}") while True: print("1、查看商品信息".center(50)) print("2、开始购物,将商品加入购物车".center(57)) print("3、查看和结算购物车".center(51)) print("4、退出".center(45)) option2 = input("请输入你的选择:") if option2 =="1": #查看商品信息 good() elif option2 =="2": #开始购物,将商品加入购物车 print("欢迎来到三乐购物超市".center(30, "#")) number = input("请输入你要购买的商品编号(F00001-F00003):") if number == 'exit': print("您已成功退出登录") exit() else: if number in shop:#查看编号是否存在于shop中 quantity = input("请输入你要购买的数量:") if quantity.isdigit(): #如果数量是数字 quantity = float(quantity) shopping(number,quantity) else: print("输入的数量有误,请重新输入!") else: print("编号输入不正确,请重新输入") elif option2 == "3": #查看和结算购物车 checking_cart() print("按Q进行结账".center(20, "@")) pay = input("输入'Q'就可以进行结账):") if pay == "Q": print("正在结算...") paying_cart(pay) else: print("结账按钮输入错误!") elif option2 == "4": #退出 # print("谢谢惠顾,欢迎下次光临".center(50, "#")) exit() break else: print("输入有误!请重新输入") #用户注册 elif option =='2': username =input("请输入你的用户名; ") passwd = input("请输入你的密码: ") money = input("请输入你的充值金额: ") register(username, passwd, money) #退出系统 elif option =='3': print("您已经退出系统") # exit() else: print("输入错误")
2、运行结果:
1、登录之后可以进行商品信息查询、购物、查看和结算购物车
2.用户注册可以选择充值金额。