简单购物系统—Python 小项目

简介: 简单购物系统—Python 小项目

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.用户注册可以选择充值金额。


相关文章
|
5天前
|
机器学习/深度学习 人工智能 算法
【乐器识别系统】图像识别+人工智能+深度学习+Python+TensorFlow+卷积神经网络+模型训练
乐器识别系统。使用Python为主要编程语言,基于人工智能框架库TensorFlow搭建ResNet50卷积神经网络算法,通过对30种乐器('迪吉里杜管', '铃鼓', '木琴', '手风琴', '阿尔卑斯号角', '风笛', '班卓琴', '邦戈鼓', '卡萨巴', '响板', '单簧管', '古钢琴', '手风琴(六角形)', '鼓', '扬琴', '长笛', '刮瓜', '吉他', '口琴', '竖琴', '沙槌', '陶笛', '钢琴', '萨克斯管', '锡塔尔琴', '钢鼓', '长号', '小号', '大号', '小提琴')的图像数据集进行训练,得到一个训练精度较高的模型,并将其
18 0
【乐器识别系统】图像识别+人工智能+深度学习+Python+TensorFlow+卷积神经网络+模型训练
|
1天前
|
机器学习/深度学习 人工智能 算法
【服装识别系统】图像识别+Python+人工智能+深度学习+算法模型+TensorFlow
服装识别系统,本系统作为图像识别方面的一个典型应用,使用Python作为主要编程语言,并通过TensorFlow搭建ResNet50卷积神经算法网络模型,通过对18种不同的服装('黑色连衣裙', '黑色衬衫', '黑色鞋子', '黑色短裤', '蓝色连衣裙', '蓝色衬衫', '蓝色鞋子', '蓝色短裤', '棕色鞋子', '棕色短裤', '绿色衬衫', '绿色鞋子', '绿色短裤', '红色连衣裙', '红色鞋子', '白色连衣裙', '白色鞋子', '白色短裤')数据集进行训练,最后得到一个识别精度较高的H5格式模型文件,然后基于Django搭建Web网页端可视化操作界面,实现用户在界面中
9 1
【服装识别系统】图像识别+Python+人工智能+深度学习+算法模型+TensorFlow
|
6天前
|
安全 开发者 索引
将python项目从动态迁移到静态
【6月更文挑战第29天】本文介绍**mypy 是 Python 的静态类型检查器,它结合动态和静态类型的优势,提供编译时类型检查而无运行时开销。 文中在类的示例中,展示了如何为方法添加类型注解,以增强类的安全性。泛型允许创建可复用的类型安全容器,如 Stack 类,它可以用
16 4
将python项目从动态迁移到静态
|
2天前
|
监控 Python
paramiko 模块 ---Python脚本监控当前系统的CPU、内存、根目录、IP地址等信息
paramiko 模块 ---Python脚本监控当前系统的CPU、内存、根目录、IP地址等信息
|
1天前
|
Python Windows
怎么将 Python 项目打包成 exe?
这篇内容是一个关于使用Python和相关工具创建GUI应用并打包成Windows安装程序的教程摘要: - **环境**:Python 3.8,Tkinter(内置GUI库),PyInstaller 6.3.0,Inno Setup Compiler(用于创建安装包)。 - **基本流程**:在conda环境中创建一个独立的虚拟环境,编写一个使用Tkinter的GUI应用,添加图标,用PyInstaller将应用打包成单个可执行文件(exe),最后用Inno Setup Compiler将exe和相关文件打包成安装程序。
|
1天前
|
机器学习/深度学习 人工智能 算法
【坚果识别】果实识别+图像识别系统+Python+计算机课设+人工智能课设+卷积算法
坚果识别系统,使用Python语言进行开发,通过TensorFlow搭建卷积神经网络算法模型,对10种坚果果实('杏仁', '巴西坚果', '腰果', '椰子', '榛子', '夏威夷果', '山核桃', '松子', '开心果', '核桃')等图片数据集进行训练,得到一个识别精度较高的模型文件,让后使用Django搭建Web网页端界面操作平台,实现用户上传一张坚果图片 识别其名称。
4 0
|
2天前
|
Python
回合制对战游戏——python小项目
回合制对战游戏——python小项目
|
3天前
|
Java C++ 开发者
如何根据项目需求选择使用C++还是Python进行内存管理?
【7月更文挑战第2天】如何根据项目需求选择使用C++还是Python进行内存管理?
11 0
|
7天前
|
机器学习/深度学习 人工智能 数据挖掘
如何系统地自学 Python?
如何系统地自学 Python?
10 0
|
8天前
|
Linux 编译器 C语言
Python的系统路径
Python的系统路径
6 0