zoukankan      html  css  js  c++  java
  • 登录+购物车+信息保存

    import fnmatch, os
    import re
    import pickle
    
    #写入注册信息
    def inmation(user,pwd,XinMing,phone,balance=0,consumption=0):
        name_user = {'name':user,'pwd':pwd,'XinMing':XinMing,'phone':phone,'balance':balance,'consumption':consumption,'shop_car':{},}
        f = open('D:Esemanticzzzz/%s.txt'%user,'ab+')
        f.write(pickle.dumps(name_user))
    
    #验证文件名账号,在就返回True 不再返回False
    def edd(user_name):
        def allFiles(root, patterns = '*', single_level = False, yield_folders = False):
            patterns = patterns.split(';')
            for path, subdirs, files in os.walk(root):
                if yield_folders:
                   files.extend(subdirs)
                files.sort()
                for name in files:
                    for pattern in patterns:
                        if fnmatch.fnmatch(name, pattern):
                            yield os.path.join(path, name)
                            break
                if single_level:
                    break
        for name in allFiles('D:Esemanticzzzz', single_level = True):
            w = re.findall(r'\([w]+).txt',name)
            for i in w:
                if user_name == i:
                    # f = open('D:Esemanticzzzz/%s.txt'%user_name,'r')
                    # t = f.read()
                    return True
        return False
    
    #验证账号密码
    def user_pwd(user,pwd):
        f = open('D:Esemanticzzzz/%s.txt'%user,'rb')
        r = pickle.loads(f.read())
        if r['name'] == user and r['pwd'] == pwd :
            return True
        return False
    
    #写入修改信息  必须先关闭打开文件
    def write_information(user,r):
        filename = 'D:Esemanticzzzz/%s.txt'%user
        os.remove(filename)
        f = open('D:Esemanticzzzz/%s.txt'%user,'ab+')
        f.write(pickle.dumps(r))
        f.close()
        return True
    
    #修改密码
    def pwd_new(user,pwd,):
        f = open('D:Esemanticzzzz/%s.txt'%user,'rb+')
        r = pickle.loads(f.read())
        f.close()
        print(r)
        if r['name'] == user and r['pwd'] == pwd :
            while True:
                inp_new1 = input('输入新密码')
                inp_new2 = input('输入新密码')
                if inp_new1 == inp_new2:
                    r['pwd'] = inp_new2
                    write_information(user,r)
                    return True
        return False
    
    #购物
    def Product(user,pwd):
        s = open ('D:Esemanticzzzz/shop_stock.txt','rb')
        Product_List  = pickle.loads(s.read())
    
        print('*******************************
    欢迎光临山姆旗舰店 退出按‘Y’
    *******************************
    ')
        for i in Product_List:
            print(i['name'],i['price'],i['unit'],i['piece'],i['Stock'])
        f = open('D:Esemanticzzzz/%s.txt'%user,'rb+')
        r = pickle.loads(f.read())
        f.close()
        while True:
            inp_shop=input('请输入需要购买的商品:')
            for i in Product_List:
                if inp_shop == i['name']:
                    r['balance'] -= i['price']
    
                    while r['balance'] < 0:
                        print('本次消费需支付%s元.'%abs(r['balance']))
                        inp_money = input('请输入充值金额:')
                        int(inp_money)
                        r['balance'] += int(inp_money)
                        print(r)
                    print('尊敬的『%s』会员,您已成功购买此商品,本次消费%s元,账户余额为%s元,'%(r['XinMing'],i['price'],r['balance']))
            if inp_shop == 'y' or inp_shop == 'Y' :
                print('『%s』会员欢迎再次光临,祝您购物愉快'%r['XinMing'])
                write_information(user,r)
                break
    
    #主
    def sgin():
        inp_1 = input('*******************************
    登录请按1,注册请按2,修改密码3
    *******************************
    ')
    
        #账户登录
        if inp_1 == '1':
            while True:
                inp_user = input('请输入登录账号:')
                if edd(inp_user):
                    print('账号可用')
                else:
                    print('账户信息不存在')
                    continue
                inp_pwd = input('请输入登录密码:')
                if user_pwd(inp_user,inp_pwd):
                    print('恭喜登录成功')
                    Product(inp_user,inp_pwd)
                    break
                else:
                    print('密码输入错误')
        #账户注册
        elif inp_1 == '2':
            while True:
                inp_user = input('请输入注册登录账号:')
                user_new = edd(inp_user)
                if user_new:
                    print('账号已经存在')
                    continue
                inp_phone = input('请输入手机号号:')
                inp_pwd = input('请输入注册密码:')
                inp_xinming = input('姓名:')
                inmation(inp_user,inp_pwd,inp_xinming,inp_phone)
                print('恭喜注册成功')
                sgin()
                break
    
        elif inp_1 == '3':
            while True:
                inp_user = input('请输入登录账号:')
                if edd(inp_user):
                    print('账号可用')
                else:
                    print('账户信息不存在')
                    continue
                inp_pwd = input('请输入登录密码:')
                if pwd_new(inp_user,inp_pwd):
                    print('恭喜修改成功')
                    sgin()
                    break
                else:
                    print('密码输入错误')
    sgin()
    # Product()
    

      

    升级版 购物车可保存
    
    import fnmatch, os
    import re
    import pickle
    
    #写入注册信息
    def inmation(user,pwd,XinMing,phone,balance=0,consumption=0,piece=0):
        name_user = {'name':user,'pwd':pwd,'XinMing':XinMing,'phone':phone,'balance':balance,'consumption':consumption,'shop_car':[],'piece':piece}
        f = open('D:Esemanticzzzz/%s.txt'%user,'ab+')
        f.write(pickle.dumps(name_user))
    
    #验证文件名账号,在就返回True 不再返回False
    def edd(user_name):
        def allFiles(root, patterns = '*', single_level = False, yield_folders = False):
            patterns = patterns.split(';')
            for path, subdirs, files in os.walk(root):
                if yield_folders:
                   files.extend(subdirs)
                files.sort()
                for name in files:
                    for pattern in patterns:
                        if fnmatch.fnmatch(name, pattern):
                            yield os.path.join(path, name)
                            break
                if single_level:
                    break
        for name in allFiles('D:Esemanticzzzz', single_level = True):
            w = re.findall(r'\([w]+).txt',name)
            for i in w:
                if user_name == i:
                    # f = open('D:Esemanticzzzz/%s.txt'%user_name,'r')
                    # t = f.read()
                    return True
        return False
    
    #验证账号密码
    def user_pwd(user,pwd):
        f = open('D:Esemanticzzzz/%s.txt'%user,'rb')
        r = pickle.loads(f.read())
        if r['name'] == user and r['pwd'] == pwd :
            return True
        return False
    
    #写入修改信息  必须先关闭打开文件
    def write_information(user,r):
        filename = 'D:Esemanticzzzz/%s.txt'%user
        os.remove(filename)
        f = open('D:Esemanticzzzz/%s.txt'%user,'ab+')
        f.write(pickle.dumps(r))
        f.close()
        return True
    
    #商品库存信息更新
    def write_shopping(Stock):
        filename = 'D:Esemanticzzzz/shop_stock.txt'
        os.remove(filename)
        f = open('D:Esemanticzzzz/shop_stock.txt','ab+')
        f.write(pickle.dumps(Stock))
        f.close()
        return True
    
    #修改密码
    def pwd_new(user,pwd,):
        f = open('D:Esemanticzzzz/%s.txt'%user,'rb+')
        r = pickle.loads(f.read())
        f.close()
        print(r)
        if r['name'] == user and r['pwd'] == pwd :
            while True:
                inp_new1 = input('输入新密码')
                inp_new2 = input('输入新密码')
                if inp_new1 == inp_new2:
                    r['pwd'] = inp_new2
                    write_information(user,r)
                    return True
        return False
    
    #购物
    def Product(user,pwd):
        s = open ('D:Esemanticzzzz/shop_stock.txt','rb')
        Product_List  = pickle.loads(s.read())
        s.close()
        print('*******************************
     欢迎光临山姆旗舰店 退出按‘Y’
    *******************************
    ')
        for i in Product_List:
            print(i['name'],i['price'],i['unit'],i['piece'],i['Stock'])
        f = open('D:Esemanticzzzz/%s.txt'%user,'rb+')
        r = pickle.loads(f.read())
        f.close()
        while True:
            inp_shop=input('请输入需要购买的商品:')
            for i in Product_List:
                if inp_shop == i['name']:
                    r['balance'] -= i['price']
                    r['shop_car'].append(i['name'])
                    r['consumption'] += i['price']
                    r['piece'] += 1
                    i['piece'] -=1
                    while r['balance'] < 0:
                        print('本次消费需支付%s元.'%abs(r['balance']))
                        inp_money = input('请输入充值金额:')
                        int(inp_money)
                        r['balance'] += int(inp_money)
    
                    print('尊敬的『%s』会员,您已成功购买此商品,本次消费%s元,账户余额为%s元,'%(r['XinMing'],i['price'],r['balance']))
            if inp_shop == 'y' or inp_shop == 'Y' :
                print('『%s』会员欢迎再次光临,祝您购物愉快'%r['XinMing'])
                write_shopping(Product_List)
                write_information(user,r)
                break
    
    #打开个人信息
    def display_information(user):
        f = open('D:Esemanticzzzz/%s.txt'%user,'rb')
        r = pickle.loads(f.read())
        f.close()
        return r
    
    #修改个人信息
    def modify_information(user,pwd):
        r = display_information(user)
        print('姓名:%s
    手机号:%s
    余额:%s元
    已购买%s件商品,总消费%s元.
    '%(r['XinMing'],r['phone'],r['balance'],r['piece'],r['consumption']))
        inp_modify = input('请输入你要修改的信息')
        if inp_modify == '手机号':
            inp_phone = input('请输入需要修改的手机号:')
            r['phone'] = inp_phone
        elif inp_modify == '姓名':
            inp_name = input('请输入需要修改的姓名:')
            r['XinMing'] = inp_name
        write_information(user,r)
    
    #主
    def sgin():
        inp_1 = input('*****************************************
    登录请按1,注册请按2,修改密码3,修改信息4
    *****************************************
    ')
    
        #账户登录
        if inp_1 == '1':
            while True:
                inp_user = input('请输入登录账号:')
                if edd(inp_user):
                    print('账号可用')
                else:
                    print('账户信息不存在')
                    continue
                inp_pwd = input('请输入登录密码:')
                if user_pwd(inp_user,inp_pwd):
                    print('恭喜登录成功')
                    Product(inp_user,inp_pwd)
                    break
                else:
                    print('密码输入错误')
        #账户注册
        elif inp_1 == '2':
            while True:
                inp_user = input('请输入注册登录账号:')
                user_new = edd(inp_user)
                if user_new:
                    print('账号已经存在')
                    continue
                inp_phone = input('请输入手机号号:')
                inp_pwd = input('请输入注册密码:')
                inp_xinming = input('姓名:')
                inmation(inp_user,inp_pwd,inp_xinming,inp_phone)
                print('恭喜注册成功')
                sgin()
                break
        #修改密码
        elif inp_1 == '3':
            while True:
                inp_user = input('请输入登录账号:')
                if edd(inp_user):
                    print('账号可用')
                else:
                    print('账户信息不存在')
                    continue
                inp_pwd = input('请输入登录密码:')
                if pwd_new(inp_user,inp_pwd):
                    print('恭喜修改成功')
                    sgin()
                    break
                else:
                    print('密码输入错误')
        #查询信息
        elif inp_1== '4':
            while True:
                inp_user = input('请输入登录账号:')
                if edd(inp_user):
                    print('账号可用')
                else:
                    print('账户信息不存在')
                    continue
                inp_pwd = input('请输入登录密码:')
                if user_pwd(inp_user,inp_pwd):
                    print('恭喜登录成功')
                    modify_information(inp_user,inp_pwd)
                    break
                else:
                    print('密码输入错误')
    
    
    sgin()
    # Product()
    

      

  • 相关阅读:
    如何理解javaScript对象?
    web移动端开发技巧与注意事项汇总
    javaScript基础语法(上)
    css选择器的使用详解
    css属性兼容主流浏览器
    前端开发必备站点汇总
    Highchart基础教程-图表配置
    Highchart基础教程-图表的主要组成
    Highcharts入门小示例
    Highcharts配置
  • 原文地址:https://www.cnblogs.com/cloniu/p/6221835.html
Copyright © 2011-2022 走看看