购物系统:
使用系统需要登录验证,进入系统后,输入购物预算信息
用户可以任意查看商品信息和已购商品信息
用户根据商品编号购买商品,购买时,检测余额是否够,够就直接付款,不够就提醒
可随时退出,退出后,打印已购买商品和余额
要求:用尽可能友好的方式输出
封装函数
一、输出欢迎界面还有登录注册菜单
1、登录
2、注册
保留用户信息,目前做不到的话,先注册,注册成功之后再选择登录进去
用户信息 - 用户名, 密码 , 初始金额
二、登录成功之后,又弹出菜单
1、查看商品信息
2、购买商品,将商品加入购物车
3、查看和结算购物车
4、退出
# 菜单一
# 1.登录
def login(username, passwd):
if username in user and user[username]['passwd'] == passwd:
return True
# 2.注册
def register(username, passwd, money):
if username in user:
print("用户名已存在,请重新输入!")
else:
user[username] = {'passwd':passwd, 'money':money}
print(f"{username}注册成功")
print("用户信息已更新".center(26,"-"))
print(f"{'用户名':<8}{'密码':<10}{'金额':<7}")
for i in user: #逐个打印用户名、密码、金额
print(f"{i:<10}{user[i]['passwd']:<12}{user[i]['money']:<10}")
# 菜单二
# 1.查看商品信息
def message():
print("商品信息".center(40,"-"))
print(f"{'商品编号':<7}{'商品名称':<8}{'单价':<7}")
for i in goodsmess: #逐个打印商品编号、名称、单价
print(f"{i:<10}{goodsmess[i]['name']:<10}{goodsmess[i]['price']:<10}")
print("-"*44)
# 2.购买商品,将商品加入购物车
def add_goods(goodsid, goodsnum):
# cart初始化为空字典{} --> {goodsid:goodsnum}
# 若购物车里已经有该商品,该商品数量在原基础上增加即可
cart[goodsid] = cart.get(goodsid, 0) + goodsnum
print("加购成功...")
print(f"{'商品编号':<8}{'数量':<7}")
print(f"{goodsid:<12}{goodsnum:<10}") #打印此次加购的商品信息:商品编号、数量
# 3.查看、结算购物车
# 3.1查看所有加购成功的商品
def check_cart():
print("查看购物车".center(38,"-"))
print(f"{'商品编号':<8}{'商品名称':<8}{'单价':<7}{'数量':<7}")
for i in cart: #逐个打印商品编号、名称、单价、数量
print(f"{i:<11}{goodsmess[i]['name']:<10}{goodsmess[i]['price']:<8}{cart[i]:<10}")
print("-"*41)
# 3.2结算购物车
def pay_cart(pay):
global cartmoney, cartmoney2
for i in cart:
cartmoney += cart[i] * goodsmess[i]['price']
if cartmoney <= user[username]['money'] :
user[username]['money'] -= cartmoney
print(f"结算成功,本次消费:{cartmoney},余额:{user[username]['money']}")
cart2.update(cart.copy()) #清空cart之前先保存,退出时,输出所有已购商品 --》购物车1+购物车2+...
cart.clear() #结算成功,清空购物车
cartmoney2 += cartmoney #将每次的消费金额相加,退出时输出
cartmoney = 0 #购物车清空之后,将消费金额置0,可继续加购,结算购物车
else:
print(f"余额不足!")
# 4.退出
# 退出并打印购物单和余额
def exit():
global cartmoney2
print("谢谢惠顾!欢迎下次光临!".center(30))
print("-"*38)
print(f"{'商品编号':<8}{'商品名称':<8}{'单价':<7}{'数量':<7}")
for i in cart2:
print(f"{i:<11}{goodsmess[i]['name']:<10}{goodsmess[i]['price']:<8}{cart2[i]:<10}")
print("-" * 38)
print(f"总共消费:{cartmoney2},余额为:{user[username]['money']}")
cart2.clear() #退出之后清空购物单
cartmoney2 = 0 #将总消费金额置0
# 主程序
user = {'root':{'passwd':'123456', 'money':100}}
print("欢迎进入三乐购物系统".center(50,"-"))
goodsmess = {'F01':{'name':'苹果','price':2},
'F02':{'name':'香蕉','price':2},
'F03':{'name':'梨子','price':1},
'F04':{'name':'芒果','price':2},
'F05':{'name':'柚子','price':8},
'F06':{'name':'西瓜','price':10}}
# cart = {goodsid:goodsnum} --> {'编号':'数量'}
cart = {} #购物车,初始化为空
cart2 = {} #存放所有已购商品 --> 类似于购物车1+购物车2+...
cartmoney = 0 #购物车消费金额 初始化为0
cartmoney2 = 0 #所有的购物车消费金额
while 1:
print("1、登录".center(50))
print("2、注册".center(50))
print("3、退出".center(50))
option = input("请输入你的选择:")
if option == '1':
username = input("请输入用户名:")
passwd = input("请输入密码:")
if login(username,passwd):
print("登录成功")
print(f"欢迎光临!你的余额为:{user[username]['money']}")
while 2:
print("1、查看商品信息".center(50))
print("2、购买商品,将商品加入购物车".center(58))
print("3、查看和结算购物车".center(52))
print("4、退出".center(46))
option2 = input("请输入你的选择:")
if option2 == '1':
message()
elif option2 == '2':
goodsid = input("请输入你想加购的商品编号(F01~F06):")
if goodsid in goodsmess: #输入的编号存在
goodsnum = input("请输入你想加购的商品数量:")
if goodsnum.isdigit():
goodsnum = int(goodsnum)
add_goods(goodsid, goodsnum)
else:
print("输入的不是整数")
else:
print("商品不存在!")
elif option2 == '3':
check_cart()
pay = input("结算购物车请按1(按其他键返回菜单):")
if pay == '1':
pay_cart(pay)
elif option2 == '4':
print("退出")
exit()
break
else:
print("输入错误!")
else:
print("登录失败")
elif option == '2':
username = input("请输入用户名:")
passwd = input("请输入密码:")
money = int(input("请输入金额:"))
register(username,passwd,money)
elif option == '3':
print("退出")
break
else:
print("输入错误!")
这是我的第一篇博客,希望能帮助到大家呀 ~