用python实现三乐购物系统基本功能

##三乐购物系统基本功能##

  • 使用系统登录验证,进入系统后,输入购物预算信息
  • 注册三乐购物系统登录账号
  • 用户可以任意查看商品信息和已购物信息
  • 用户根据商品编号购买商品,购买时,检测余额是否够,够就直接扣款,不够就提醒可随时退出(输入exit) , 退出后,打印已购买商品和余额
  • 要求:用尽可能友好的方式输出(作业需要提交代码及执行结果截图)

    封装函数
    {'F00001': {'name': '苹果', 'price': 10},
    'F00002': {'name': '香蕉', 'price': 5.5},
    'F00003': {'name': '橙子', 'price': 15.6},
    'F00004': {'name': '柚子', 'price': 3.6},
    'F00005': {'name': '牛奶', 'price': 45},
    'F00006': {'name': '酸奶', 'price': 12}}
    
  • ##代码实现##

  • '''
    @name:first
    @author:smm
    @projectname:三乐购物系统
    '''
    
    
    
    ##########  三乐购物系统  #########
    import sys
    
    
    
    Shopping_list ={}
    #购物清单
    money = 0
    #总金额
    out_money = 0
    #余额
    
    
    
    """部分用户信息"""
    lst = {'root': {'passwd': '12345', 'balance': 360}, 'dmxb': {'passwd': '919795', 'balance': 950}}
    #用字典来存放用户信息
    
    
    
    """商品信息"""
    goodslist = {'F00001': {'name': '苹果', 'price': 10}, 'F00002': {'name': '香蕉', 'price': 5.5},
                 'F00003': {'name': '橙子', 'price': 15.6}, 'F00004': {'name': '柚子', 'price': 3.6},
                 'F00005': {'name': '牛奶', 'price': 45}, 'F00006': {'name': '酸奶', 'price': 12}}
    #用字典来存放商品信息
    
    
    """系统登录验证及确定购物预算信息"""
    def login():
        global username, passwd,out_money
        username = input("请输入您的用户名:")
        if username == 'exit':
            exit()
        else:
            passwd = input("请输入您的密码:")
            if username in lst.keys() and passwd == lst[username]['passwd']:
                #利用字典遍历的方式来在存放用户信息的字典中查找用户输入的账号是否存在
                print("登陆成功!")
                print(" 欢迎登进三乐购物系统 ".center(40, "-"))
                print(f"您当前的余额为:", lst[username]['balance'])
                out_money = lst[username]['balance']
                shopping()
            else:
                print("用户名或者密码错误,请重新输入.")
                login()
    
    
    
    """用户注册账号"""
    #创建新的购物系统账号,利用字典的知识加入用来保存用户账号的字典
    def enroll(balance=None):
        new_username = input("您的用户名为:")
        if new_username in lst.keys():
            print("您输入的用户名已有,请重新输入")
            enroll()
            # 注册账户时用户名重复,则重新输入
        elif new_username == exit:
            exit()
            #退出三乐购物系统
        else:
            new_passwd = input("您的密码为:")
            if new_passwd == 'exit':
                exit()
            else:
                new_balance = int(input("您的余额为:"))
                if new_balance <= 0:
                    print("你输入的金额小于零元,请重新输入")
                    #当当前账号余额设置<0时,不能进行商品购买
                elif new_balance == "exit":
                    exit()
    
                else:
                    lst.update({new_username: {'passwd': new_passwd, 'balance': new_balance}})
                    print("登录成功,请返回首页重新登录")
                    login()
    
    
    
    """打印用户购物信息并退出三乐购物系统"""
    def exit():
    #退出后,按照要求打印当前用户已购买商品和余额
        print("您已购商品清单如下:")
        print(Shopping_list)
        print(f"您的余额为:{out_money}" + "    感谢您使用三乐购物系统,希望能带给您好的购物体验,下次再见^_^")
        sys.exit(0)
    
    
    
    """记录用户任意查看商品信息和已购买信息"""
    def shopping():
        global  Shopping_cart, out_money , money, lst1
        print("#".center(50, "#"))
        print("今日商品详情".center(50, "-"))
        for i, j in goodslist.items():
            print(f'{i}-->{j}')
        # 遍历shoplist()字典
        while 1:
            shopinput = input("请输入你想要购买的商品对应编号:")
            if shopinput == 'exit':
                exit()
                # 退出三乐购物系统
            elif shopinput == 'A':
                for i, j in goodslist.items():
                    print(f'{i}-->{j}')
                # 查看今日商品详情
            elif shopinput in goodslist.keys():
    
    
                #money += out_money
                #out_money -= money
    
                # 添加商品到购买车
                """购物车商品支付"""
                payment = input("是否确认支付:")
                print("*确认*", end="---")
                print("*退出*")
                while payment == '确认':
                    if int(lst[username]['balance']) >= money:
                        lst1 = int(lst[username]['balance'])
                        #个人总资产赋值为lst1
                        money += goodslist[shopinput]['price']
                        out_money -= goodslist[shopinput]['price']
                        #余额
                        print(f"已成功支付,你的余额为{out_money}")
                        Shopping_list.update({goodslist[shopinput]['name']:
                                                  {'单价': goodslist[shopinput]['price'],
                                                   '总价': money}})
                        shopping()
                    elif int(out_money) < money:
                        print("您的余额不足!")
                        behavior = input("您的下一步操作是:")
                        print("*退出三乐购物系统*", end="---")
                        print("*返回首页*")
                        # money -= out_money
                        # out_money += money
                        Shopping_list.popitem()
                        if behavior == 'exit':
                            exit()
                        elif behavior == '返回首页':
                            home()
                    else:
                        print("输入格式错误")
                if payment == 'exit':
                    exit()
                else:
                    print("输入格式错误,请重新输入")
            elif shopinput == 'shopping_car':
                print(Shopping_list)
            else:
                print("您输入的商品信息不在今日售卖商品当中,请重新输入...")
    
    
    #首页设计
    def home():
        shopping_list = {}
        print("#".center(45, "#"))
        print(" 三乐购物系统欢迎您 ".center(40, "^"))
        print(" 菜单 ".center(45, "-"))
        print("*登录*",end="---------------")
        print("*注册*",end="---------------")
        print("*退出*")
        print(" ".center(45, " "))
        choice = input("请输入您的选择:")
        print("温馨提示:输入'exit'退出三乐购物系统,输入'A'查看今日商品详情")
        if choice == '登录':
            login()
        elif choice == '注册':
            enroll()
        elif choice == '退出':
            exit()
        else:
            print("您输入的格式错误,请重新输入!")
            home()
    
    home()

    ##知识点##

  • 填充(居中对齐,左对齐,右对齐)
    
    
    msg3 = "欢迎光临"
    print(msg3.center(35,"^"))
    print(msg3.ljust(35,"^"))
    print(msg3.rjust(35,"^"))

  • 字典遍历
  • for i,j in d5.items():
  • 字典的增加与删除
  • 新增和修改
    dict[key] = value
    如果 key 存在就是修改,如果不存在就是新增
    3
    >>> d3['a'] = 8
    >>> d3
    {'a': 8, 'b': 2, 'c': 3}
    >>> d3['d'] = 8
    >>> d3
    {'a': 8, 'b': 2, 'c': 3, 'd': 8}
    >>>
    
    
    删除
    dict.pop(key)
    {'a': 8, 'b': 2, 'c': 3, 'd': 8}
    >>> d3.pop('a')
    8
    # >>> d3
    {'b': 2, 'c': 3, 'd': 8}
    #dict.popitme() 默认删除最后一个
    >>> d3.popitem()
    ('d', 8)
    >>>
    >>> d4 = {'a':{'x':3}}
    >>> d3['a']
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    KeyError: 'a'
    >>> d4['a']
    {'x': 3}
    >>> d4['a'].pop('x')
    3
  • 函数   ---->下一篇再具体讲解
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值