• 我的python菜鸟之路11


    -----------------------------------函数相关--------------------------------------

    函数中高级

    • 函数可以作为返回值

      def bar():
          def inner():
              print(123)
          return inner
      v = bar()
      v()
      
    • 闭包:为函数创建一块区域(内部变量,供自己使用),为他以后执行提供数据

      name = 'oldboy'
      def bar(name):
          def inner():
              print(name)
          return inner
      v1 = bar('yang')
      v2 = bar('chang')
      v1()
      v2()
      #输出结果为
      #yang
      #chang
      
    • 注意:函数是何时创建的

    函数补充

    • lambda(匿名函数)

    • 在数据类型的方法中有无返回值

    • 无返回值

      • 列表

        v1  = [11,22,33]
        v1.append(99)
        
    • 仅有返回值

      • 字符串、字典

        #练习1,字符串
        v = 'alex'
        result = v.split('l')
        print(result)
        
        #练习2,字典
        v = {'k1':'v2'}
        result1 = v.get('k1')
        result2 = v.keys()
        print(result1,result2)
        
      • 有返回值+修改

        v = [11,22,33]
        result = v.pop()
        

    ------------------------------------内置函数--------------------------------------

    编码相关

    • chr——将十进制数字转换成unicode编码中的对应字符

    • ord——根据字符在unicode编码中找到其中对应的十进制

      #生成随机字母
      import random
      data = []
      for i in range(6):
          v = random.randint(65,100)
          data.append(chr(v))
      print(''.join(data))
      

    高级一点的函数

    • map ,循环每个元素(第二个参数一定是一个可迭代的数据),然后让每个参数执行函数(第一个参数),将每个参数执行的结果保存到新的列表中,并返回

      #map函数与lambda函数并用
      v1 = [11,22,33,44]
      result = map(lambda x:x+100,v1)
      print(list(result))
      
    • filter,结构基本与map相同,但是主要用于筛选

      #filter与lambda、与升级的三元运算共用
      v1 = [11,22,'aa','bb',33,44]
      result = filter(lambda x:type(x)==int,v1)
      print(list(result))
      
    • ruduce,基本结构与map相同,但主要用于巴函数弄到一块

      import functools
      v1 =[1,2,3,4,5,6]
      def func(x,y):
          return x*y
      result = functools.reduce(func,v1)
      print(result)
      

    MD5加密函数

    • 可被MD5解密器解密
    def funs(a):
       import hashlib
       obj = hashlib.md5()
       obj.update(a.encode('utf-8')) #注意encode,以及a后的.a为函数的参数
       result = obj.hexdigest()
       return(result)
    v = funs("dyhgjf")
    print(v)
    
    • 加盐,防止md5解密器解密

      def funs(a):
          import hashlib
          obj = hashlib.md5('hjafsdkada'.encode('utf-8'))#在括号里面加入任意字符串,来达到加密的效果
          obj.update(a.encode('utf-8'))
          result = obj.hexdigest()
          return(result)
      v = funs("1")
      print(v)
      
  • 相关阅读:
    固定sql语句传参批量查询数据库脚本
    超多行数据纵向编辑
    takes 3 positional arguments but 4 were given错误
    使用PMD进行代码审查(转)
    WebADI应用到Office 2016 64-bit
    SVN 提交代码时强制加入注释内容
    DOCKER初体验
    "make_path" is not exported by the File::Path modul
    perl 调用shell脚本
    scp 上传文件到多个服务器节点
  • 原文地址:https://www.cnblogs.com/yangzilaing/p/13222604.html
Copyright © 2020-2023  润新知