美文网首页
2018-10-11笔记

2018-10-11笔记

作者: 癫狂麦芽糖 | 来源:发表于2018-10-11 20:05 被阅读0次

    1.匿名函数

    函数名 = lambda 参数列表:返回值
    说明:
    lambda是关键字
    :固定的
    此处返回值相当于只有一个return语句的函数体

    #写一个匿名函数,功能是求两个数的和
    [IN1]sum1 = lambda num1,num2: num1+num2
    
         print(sum1(3,9))
    [IN2]def sum1(num1,num2):
          return num1+num2
          print(sum1(10,20)
    #求1+2+3+……+100
    [IN3]sum2 = lambda n: sum(range(n+1))
           print(sum2(100))
    [OUT1]12
    [OUT2]30
    [OUT3]5050
    

    特点:可直接将函数的声明作为一个变量或值

    2.变量的作用域

    变量的作用域指的是变量能够使用的范围
    全局变量:声明在函数和类的外面的变量;作用域从声明开始到整个py结束
    局部变量:声明在函数和类内的变量
    作用域从声明开始到函数结束

    3.关键字

    global 关键字:在函数中说明此变量为全局变量。只声明,不赋值,只在函数中使用

    [IN]name = 'abc' #全局变量
    
    def func2():
          global name #声明使用的name是全局变量name
          name = 'aaa'#局部变量
          print(name)
    
    print(name)
    
    [OUT]aaa
    

    nonlocal关键字 :在函数中的局部函数中修改局部变量的值

    4.函数作为变量

    声明函数就是声明一个类型是function的变量,函数名实质就是变量。
    sort的使用
    列表.sort(key=None, reverse=False)
    使用sort的时候,可以通过给key赋一个函数变量,来规定列表中的元素按什么来排序
    其中:函数变量要求要有一个参数和一个返回值。参数代表列表中的元素,返回值代表按照那个标准排序

    #将列表里的元素中按成绩进行排序
    list1=[
        {'name': '张三', 'age': 20, 'score': 90},
        {'name': '李四', 'age': 28, 'score': 70},
        {'name': '王五', 'age': 18, 'score': 89}
    ]
    list1.sort(key=lambda item:item['score'])
     print(list1)
    def get_age(item):
        return item['score']
     list1.sort(key=get_age)
     print(list1)
    

    5.将函数作为返回值

    函数可以作为返回值出现
    python中的函数可以有多个返回值,判断是否有return返回值,考虑是否有新数据产生。

    #案例:读程序
    def operation(operator:str):
        if operator=='+':
            def sum1(*args,**kwargs):
                sum2=0
                for item in args:
                    sum2+= item
                for key in kwargs:
                    sum2+= kwargs[key]
                return sum2
            return sum1
        elif operator=='*':
            def func1(*args,**kwargs):
                sum2=1
                for item in args:
                    sum2*=item
                for key in kwargs:
                    sum2*=kwargs[key]
                return sum2
            return func1
    
    print(operation('*')(3,4,6,3))
    

    6.函数的调用

    函数的调用过程是一个压栈的过程
    每次调用函数时,系统都会在内存中(栈)开辟空间来存储函数执行过程中产生的数据(函数中声明的变量)
    当函数调用完成后,这块内存空间会自动销毁。

    #求多个数的和及平均值
    def my_sum(*nums):
        sum1=sum(nums)
        average=sum1/len(nums)
        return sum1,average
    
    print(my_sum(3,4,2,5,7,37))
    

    7.递归函数

    递归函数:函数中调用函数本身。循环能做的事递归都可以做。
    步骤:1)确定临界值(循环结束的条件,一般是最小值)
    2)找关系,假设函数功能已经实现,找f(n)和f(n-1)的关系
    3)根据关系,用f(n-1)实现f(n)的功能
    一般不用递归,耗内存

    相关文章

      网友评论

          本文标题:2018-10-11笔记

          本文链接:https://www.haomeiwen.com/subject/eaivaftx.html