2018-07-25Python(7)

python基础语法(7)

函数下

  1. lambda函数
    lambda函数有自己的作用域。

    代码示例:

    def makeAction(x):
    acts=[]
    for i in range(5):
    # i=0,1,2,3,4
    acts.append((lambda x,j=i:j**x))
    return acts

    fs=makeAction()
    print(fs0)

  2. map()
    代码示例:

     arr = [2,4,6,8,9]
     def func(x):
         return x*2+1
     res01 = map(func,arr)
     print(list(res01))  
    

    输出结果:

    [5,9,13,17,19]

    map()方法用来将list中的每一个元素都带到方法中执行,最后返回一个map地址,需要将其转化为list类型才能查看。

  3. reduce()
    代码示例:

     from functools import reduce
     arr = [2,4,6]
     res = reduce(lambda x,y:x + y,arr)
     print(res)
    

    输出结果:

    12

    reduce方法需要传入至少两个值,先将传入值的前两个进行函数运算,之后将运算结果与接下来的一个数进行运算,直到最后,得出一个结果。
    可以利用该方法进行累加运算。

  4. filter()

    代码示例:

     arr = ('张晓明','张山','王重阳','李娟')
     res = filter(lambda s:s[0] == '张' and len(s) == 2, arr)
     print(list(res))  
    

    输出结果:

张山

filter()可以看成是条件搜索,只会搜索元祖中满足条件的值,并将其拷贝出来。

  1. sorted()

    代码示例:

     users=[
         {'id':'008','user_name':'admin','user_password':'888','type':0},
         {'id':'002','user_name':'joke','user_password':'777','type':1},
         {'id':'001','user_name':'nose','user_password':'777','type':1}
     ]
     
     res=sorted(users,key=lambda user:user['id'],reverse=True)
     
     print(res)    
    

    sorted()方法中有三个变量,第一个是要排序的list,第二个是要排序的key值,第三个,是正序还是倒序。

  2. 函数的闭包
    为了系统的安全,当函数调用结束后能够被立即回收。

    代码示例:

     a = 1 # 全局变量(任何人都可以访问它,易被修改;耗内存)
     def func_out():
         a = 2
         def func_in():#访问父函数的变量用nonlocal,若不存在父函数则会报错
             nonlocal a
             a = a + 3
             print(a)
         return func_in  
    

模块

  1. 简介
    模块就是以.py结尾的Python文件。里面是python语句和python对象的定义。
    模块的作用是让代码变得更加条例清晰。
    把相关的代码归到一个模块中,剋让代码更易懂。
    模块中可以包含函数,类,变量。

  2. 两种带入模块的方式

    1. import + 模块相对地址
    2. form 模块相对地址 import 导入的方法名
  3. 导入模块是Python解析器的检索顺序

    1. 当前目录
    2. shell变量PYTHONPATH下的每个目录
    3. 查看默认路径(UNIX: /usr/local/lib/python/)模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。
  4. globals() 和 locals() 函数

    • globals()用来取到全局变量
    • locals()用来取到其父集函数中的变量

    两者返回的都是字典,所以能用kyes()函数摘取。

  5. reload()函数

    reload(module_name)用来重新导入一个模块,因为模块顶层的代码只会在导入模块的时候执行一次,如果想再次执行,可以用reload()函数重载该模块。

  6. init.py
    该文件用于模块的初始化,只在模块导入的时候执行一次。它的里面可以为空,主要用来标识当前文件夹是一个包。

你可能感兴趣的:(2018-07-25Python(7))