1. 整理今天的博客,写课上代码,整理流程图。

博客链接--博客园

2. 写一个函数完成三次登陆功能:

  1. 用户的用户名密码从一个文件register中取出。
  2. register文件包含多个用户名,密码,用户名密码通过|隔开,每个人的用户名密码占用文件中一行。
  3. 完成三次验证,三次验证不成功则登录失败,登录失败返回False。
  4. 登陆成功返回True。
echo 'long|123' > register
def Wrapper(auth_type):
    def Outer(func_name):
        with open('register',mode='r',encoding='utf-8') as file:
            AccountDic = dict()
            for line in file:
                Key,Value = line.split('|')
                AccountDic[Key] = Value.strip()
        def LocalFile(*args,**kwargs):
            print('以本地文件存储形式登陆')
            if AccountDic.get(args[0]):
                if AccountDic[args[0]] == args[1]:
                    print('登陆成功!')
                    return True
            else:
                print('登陆失败')
                return False
        if auth_type == 'filetype':
            return LocalFile
    return Outer

@Wrapper(auth_type='filetype')
def login(username,password):
    print(f'你的用户名:{username},密码:{password}')

for i in range(3):
    ret = login(input('Username:').strip(),input('Password:'.strip()))
    if ret :break

3.再写一个函数完成注册功能:

  1. 用户输入用户名密码注册。
  2. 注册时要验证(文件regsiter中)用户名是否存在,如果存在则让其重新输入用户名,如果不存在,则注册成功。
  3. 注册成功后,将注册成功的用户名,密码写入regsiter文件,并以 | 隔开。
  4. 注册成功后,返回True,否则返回False。
def Regsiter(auth_type):
    def Outer(func_name):
        with open('register',mode='r',encoding='utf-8') as file:
            AccountDic = dict()
            for line in file:
                Key,Value = line.split('|')
                AccountDic[Key] = Value.strip()

        def LocalFile(*args,**kwargs):
            print('以本地文件存储形式登陆')
            if AccountDic.get(args[0]):
                print('用户名已经存在请重新输入用户名')
                return False
            else:
                print('用户注册成功')
                with open('register',mode='a',encoding='utf-8') as file:
                    file.write(f'{args[0]}|{args[1]}')
                    return True

        if auth_type == 'filetype':
            return LocalFile
    return Outer

@Regsiter(auth_type='filetype')
def login(username,password):
    print(f'你的用户名:{username},密码:{password}')

login(input('Username:').strip(),input('Password:'.strip()))

明日默写:

  • 写一个装饰器,求运行时间
  • 写一个匿名函数

Day13作业及默写的更多相关文章

  1. Day29作业及默写

    作业: 1\ 默写 黏包协议 2\ 上传大文件(文件\视频\图片) 3\ 和你的同桌调通 从你的计算机上传一个视频到你同桌的电脑上 4\ 进阶 : 带上登录 Server #Server #!/usr ...

  2. Day20作业及默写

    1.请使用C3算法计算出链接图中的继承顺序-Link 一 graph BT id1[A]-->id2[B] id2[B]-->id6[F] id6[F]-->id7[G] id1[A ...

  3. Day11作业及默写

    1.写函数,传入n个数,返回字典{'max':最大值,'min':最小值} 例如:min_max(2,5,7,8,4) 返回:{'max':8,'min':2}(此题用到max(),min()内置函数 ...

  4. Day10作业及默写

    1,继续整理函数相关知识点,写博客. 2,写函数,接收n个数字,求这些参数数字的和.(动态传参) def func(*number): sum=0 for num in number: sum+=nu ...

  5. Day14作业及默写

    1.整理今天所学内容,整理知识点,整理博客. pass 2.画好流程图. pass 3.都完成的做一下作业(下面题都是用内置函数或者和匿名函数结合做出): pass 4.用map来处理字符串列表,把列 ...

  6. Day9作业及默写

    1,整理函数相关知识点,写博客. 2,写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者. def func(obj): return obj[1::2] 3, ...

  7. Day8作业及默写

    1,有如下文件,a1.txt,里面的内容为: 老男孩是最好的培训机构, 全心全意为学生服务, 只为学生未来,不为牟利. 我说的都是真的.哈哈 分别完成以下的功能: 将原文件全部读出来并打印. with ...

  8. Day7作业及默写

    1. 判断一个数是否是水仙花数, 水仙花数是一个三位数, 三位数的每一位的三次方的和还等于这个数. 那这个数就是一个水仙花数. 例如: 153 = 1**3 + 5**3 + 3**3 InputNu ...

  9. Day6作业及默写

    1.使⽤循环打印以下效果: 1: * ** *** **** ***** for num in range(1,6): print('*' * num) 2: ***** **** *** ** * ...

随机推荐

  1. Alyona and a tree CodeForces - 739B (线段树合并)

    大意: 给定有根树, 每个点$x$有权值$a_x$, 对于每个点$x$, 求出$x$子树内所有点$y$, 需要满足$dist(x,y)<=a_y$. 刚开始想错了, 直接打线段树合并了..... ...

  2. hadoop中发送文件的脚本

    多台主机执行相同的命令 [xcall] [/usr/local/bin] sudo nano xcall ----------------------------------------------- ...

  3. 使用INTERSECT运算符

    显示符合以下条件的雇员的雇员ID 和职务ID:这些雇员的当前职务与以前的职务相同,也就是说这些雇员曾担任过别的职务,但现在又重新担任了以前的同一职务. hr@TEST0924> SELECT e ...

  4. 压力测试之ab命令

    网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环.只有让服务器处在高压情况下,才能真正体现出软件.硬件等各种设置不当所暴露出的问题. ab是apache自带的压力测试工具.ab非常实用,它不 ...

  5. 2017-4-13/MySQL

    1. mysql一般的连接方式都有哪些,各自优缺点. MySQL:过程式风格,最常用. MySQLi:MySQL的增强扩展,提供了过程化和面向对象两种风格的API,增加了预编译和参数绑定等新特性, 但 ...

  6. django学习之——模版

    为了减少模板加载调用过程及模板本身的冗余代码,Django 提供了一种使用方便且功能强大的 API ,用于从磁盘中加载模板, 要使用此模板加载API,首先你必须将模板的保存位置告诉框架. 设置的保存文 ...

  7. Oracle 12c启动时PDBs的自动打开

    Pluggable Database(PDB)为Oracle 12c中的一个重要的新特性, 但启动12c实例时并不会自动打开PDB数据库,这样,在启动实例后必须手动打开PDBs. 1. 实例启动后,手 ...

  8. 利用神经网络进行网络流量识别——特征提取的方法是(1)直接原始报文提取前24字节,24个报文组成596像素图像CNN识别;或者直接去掉header后payload的前1024字节(2)传输报文的大小分布特征;也有加入时序结合LSTM后的CNN综合模型

    国外的文献汇总: <Network Traffic Classification via Neural Networks>使用的是全连接网络,传统机器学习特征工程的技术.top10特征如下 ...

  9. Win10系列:VC++文件选取

    在C++/CX的Windows::Storage::Pickers命名空间中定义了一个FileOpenPicker类,使用此类可以新建一个文件打开选取器,并可以通过这个类里面包含的属性和函数选取一个或 ...

  10. spring boot 打jar包

    想必大家经常会出现以下报错信息 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Fai ...