函数相关练习题及知识点补充

--------------------------函数相关练习题及知识点补充---------------------------

  • 加密练习题

    #注册时输入n(不区分大小写)即可完成注册
    def funs(a):
        import hashlib
        obj = hashlib.md5('hjafsdkada'.encode('utf-8'))
        obj.update(a.encode('utf-8'))
        result = obj.hexdigest()
        return(result)
    user_list = []
    def register():
    
        print('*******用户注册*********')
        while True:
            user = input('请输入注册用户名:')
            if user.lower() == 'n':
                return
            pwd =input('请输入注册密码:')
            if pwd.lower()=="n":
                return
            temp = {'username':user,'password':funs(pwd)}
            user_list.append(temp)
    
    def login():
        print("*******用户登录*********")
        login_name =input('输入登录用户名:')
        login_pwd =input('输入登录密码:')
        for item in user_list:
            if login_name == item['username'] and funs(login_pwd) == item['password']:
                return True
    register()
    
    result=login()
    if result:
        print('登录成功')
    else:
        print('登录失败')
    
    
  • 不显示密码登录

    import getpass
    pwd = getpass.getpass('请输入密码')
    print(pwd) 
    
  • 函数闭包

    #练习1
    funs_list = []
    for i in range(10):
        funs_list.append(lambda x:x+i)
    #此时因为函数并未执行,所以在列表中的是九个纯函数,但此时i的值为9
    for j in range(0,len(funs_list)):
        result = funs_list[j](j)
        print(result)
    #输出结果为:9 10 11 12...........
    
    #练习2
    funs_list = []
    for i in range(10):
        funs_list.append(lambda x:x+i)
        #此时i的值为9
    for i in range(0,len(funs_list)):#此时for循环时使i从0开始,便修改了原来为9的i
        result = funs_list[i](i)
        print(result)
    #输出结果为:0 2 4 6 8 12...........
    
    #练习3
    def f1():
        print('f1')
        return f3() #此处先把f3函数执行后,再返回f3函数的返回值即None
    def f2():
        print('f2')
        return f1
    def f3():
        print('f3')
    func = f2()
    result = func()
    print(result
    
  • 函数注意事项

    def func():
        print('dvge')
    v1 = func() #此处会执行print,v1是接受返回值并执行函数不要弄混了
    print(v1)
    
  • 函数的嵌套

    def func(name):
        v = lambda x:x + name # 注意:此处为函数嵌套函数
        return v 
    v1 = func("杨子列")
    v2 = func("扬子鳄")
    v3 = v1('金角')
    v4 = v2 ('银角')
    print(v1,v2,v3,v4)
    
posted @ 2020-07-03 21:45  小杨的冥想课  阅读(150)  评论(0编辑  收藏  举报