python-一个简易的购物系统

题目

购物系统:
使用系统需要登录验证,进入系统后,输入购物预算信息
用户可以任意查看商品信息和已购商品信息
用户根据商品编号购买商品,购买时,检测余额是否够,够就直接付款,不够就提醒
可随时退出,退出后,打印已购买商品和余额
要求:用尽可能友好的方式输出
封装函数

一、需求分析

一、输出欢迎界面还有登录注册菜单
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("输入错误!")

三、运行截图

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

这是我的第一篇博客,希望能帮助到大家呀 ~

  • 32
    点赞
  • 174
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
本实战项目是一个简易购物系统,可以实现添加商品、浏览商品、购买商品等功能。 思路: 1. 定义一个商品类,包括商品名称、价格、库存等属性; 2. 定义一个购物车类,包括购物车商品列表、商品总价等属性; 3. 实现添加商品功能,将商品添加到商品列表中; 4. 实现浏览商品功能,展示所有商品信息; 5. 实现购买商品功能,将商品加入购物车中,更新商品库存和购物车总价。 代码实现: ``` class Goods: def __init__(self, name, price, count): self.name = name self.price = price self.count = count class Cart: def __init__(self): self.goods_list = [] self.total_price = 0 def add_goods(self, goods): self.goods_list.append(goods) self.total_price += goods.price def view_goods(self): for goods in self.goods_list: print("商品名称:{},价格:{},库存:{}".format(goods.name, goods.price, goods.count)) def buy_goods(self, goods): if goods.count == 0: print("商品库存不足") else: self.add_goods(goods) goods.count -= 1 goods_list = [] cart = Cart() def add_goods(): name = input("请输入商品名称:") price = input("请输入商品价格:") count = input("请输入商品库存:") goods = Goods(name, float(price), int(count)) goods_list.append(goods) print("商品添加成功") def view_goods(): print("商品列表:") for goods in goods_list: print("商品名称:{},价格:{},库存:{}".format(goods.name, goods.price, goods.count)) def buy_goods(): name = input("请输入要购买的商品名称:") for goods in goods_list: if goods.name == name: cart.buy_goods(goods) print("购买成功") return print("该商品不存在") def view_cart(): print("购物车商品列表:") cart.view_goods() print("总价:{}".format(cart.total_price)) while True: print("1.添加商品") print("2.浏览商品") print("3.购买商品") print("4.查看购物车") print("5.退出") choice = input("请选择操作:") if choice == "1": add_goods() elif choice == "2": view_goods() elif choice == "3": buy_goods() elif choice == "4": view_cart() elif choice == "5": break else: print("输入有误,请重新输入") ``` 运行效果: ``` 1.添加商品 2.浏览商品 3.购买商品 4.查看购物车 5.退出 请选择操作:1 请输入商品名称:苹果 请输入商品价格:5 请输入商品库存:10 商品添加成功 1.添加商品 2.浏览商品 3.购买商品 4.查看购物车 5.退出 请选择操作:1 请输入商品名称:香蕉 请输入商品价格:3 请输入商品库存:5 商品添加成功 1.添加商品 2.浏览商品 3.购买商品 4.查看购物车 5.退出 请选择操作:2 商品列表: 商品名称:苹果,价格:5.0,库存:10 商品名称:香蕉,价格:3.0,库存:5 1.添加商品 2.浏览商品 3.购买商品 4.查看购物车 5.退出 请选择操作:3 请输入要购买的商品名称:香蕉 购买成功 1.添加商品 2.浏览商品 3.购买商品 4.查看购物车 5.退出 请选择操作:4 购物车商品列表: 商品名称:香蕉,价格:3.0,库存:4 总价:3.0 1.添加商品 2.浏览商品 3.购买商品 4.查看购物车 5.退出 请选择操作:5 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值