• 我的python菜鸟之路12


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

    • 加密练习题

      #注册时输入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)
      
  • 相关阅读:
    【图灵学院09】RPC底层通讯原理之Netty线程模型源码分析
    【图灵学院10】高并发之java线程池源码分析
    【图灵学院02】大型互联网技术之数据库分库分表
    【图灵学院01】Java程序员开发效率工具IntelliJ IDEA使用
    【OD深入学习】Java多线程面试题
    高级工程师->架构师
    架构师成长之路
    python--openCV--鼠标事件
    python--openCV--视频处理
    python--openCV
  • 原文地址:https://www.cnblogs.com/yangzilaing/p/13232862.html
Copyright © 2020-2023  润新知