• python第九期学习笔记(八)(函数)


    转自:https://www.cnblogs.com/jin-xin/articles/10863032.html

     

    匿名函数的定义:

      函数名 = lambda 参数:返回值

    1)lambda 是定义匿名函数的关键字,相当于函数的def

    2)lambda 后面直接加形参,形参加多少都可以,只要用逗号隔开就行

    3)返回值在冒号之后设置,返回值和正常的函数一样,可以是任意数据类型

    4)匿名函数不管多复杂.只能写一行.且逻辑结束后直接返回数据

    func=lambda a,b:a+b
    print(func(3,4))

    func=lambda a,b,*args,sex='alex',c,**kwargs:kwargs
    print(func(3,4,c=666,name='alex'))

    func=lambda **kwargs:kwargs
    print(func(name='alex',job='student'))

    func=lambda x:(x[0],x[2])
    print(func('afafasd'))

    #返回两个数中较大的数
    func=lambda a,b:a if a>b else b
    print(func(2,99))

    常用的内置函数:

    list() 将一个可迭代对象转换成列表

    tuple() 将一个可迭代对象转换成元组

    dict() 通过相应的方式创建字典

    abs() 返回绝对值

    sum() 求和

    min() 求最小值

    max() 最大值

    reversed() 将一个序列翻转, 返回翻转序列的迭代器

    bytes() 把字符串转换成bytes类型

    zip() 拉链方法

    sorted排序函数

    filter筛选过滤

    map 映射函数:map(function,iterable)

     

    #计算两个列表中相同位置的数据的和
    lst1 = [1, 2, 3, 4, 5]
    lst2 = [2, 4, 6, 8, 10]
    ret=list(map(lambda x,y:x+y,lst1,lst2))
    print(ret)
    reduce:
    reduce的作用是先把列表中的前俩个元素取出计算出一个值然后临时保存着,
    接下来用这个临时保存的值和列表中第三个元素进行计算,求出一个新的值将最开始
    临时保存的值覆盖掉,然后在用这个新的临时值和列表中第四个元素计算.依次类推
    from functools import reduce
    l = reduce(lambda x,y:x*10+y,[5,6,7,8])
    print(l) #5678
     

    
    

    闭包的定义:

        1. 闭包是嵌套在函数中的函数。

        2. 闭包必须是内层函数对外层函数的变量(非全局变量)的引用。

    # def make_averager():
    # series = []
    # def averager(new_value):
    # series.append(new_value)
    # total = sum(series)
    # return total/len(series)
    # return averager
    # avg = make_averager()
    # # 函数名.__code__.co_freevars 查看函数的自由变量
    # print(avg.__code__.co_freevars)

    def wrapper(a,b):
    def inner():
    print(a)
    print(b)
    return inner
    a = 2
    b = 3
    ret = wrapper(a,b)
    #查看函数的自由变量
    print(ret.__code__.co_freevars)
    综上所述:只要含有自由变量的就是闭包

     

  • 相关阅读:
    手动安装配置Android Studio
    编程加密总结
    偏执却管用的10条Java编程技巧
    C++中一个class类对象占用多少内字节(7个例子,很清楚)
    qt 透明度设置(setWindowOpacity 和 setAutoFillBackground 和 带透明度的画刷填充就好了)
    虚函数的作用是实现多态性,多态性是将接口与实现进行分离(函数级别的接口,注意第二个例子)
    QT Linux Demo程序编译
    线性渐变、辐射渐变、角度渐变-QLinearGradient,QRadialGradient,QConicalGradient
    Linux Kernel
    .NET框架
  • 原文地址:https://www.cnblogs.com/gaoyuxia/p/11696670.html
Copyright © 2020-2023  润新知