美文网首页
Python 函数2

Python 函数2

作者: Fizz翊 | 来源:发表于2018-07-25 20:17 被阅读62次

    1.函数的返回值

    1.1函数的返回值

    a.就是函数返回给调用者的值

    b.就是return关键字后面的表达式的值

    c.就是函数调用表达式的值

    如果函数中没有return,那么函数的返回值就是None

    ***函数的调用:

    ​ a.先回到函数调用的位置

    ​ b.用实参给形参赋值

    ​ c.执行函数体

    ​ d.将返回值返回给函数调用表达式

    ​ c.回到函数调用的位置

    ***函数的函数体只有在调动后才会执行

    1.2 return关键字

    a.将return后面的值,返回给函数调用表达式

    b.结束函数

    1.3函数的结束

    a.函数体执行完

    b.遇到return

    2 作用域

    2.1作用域名词解释

    作用域:一个变量可以使用的范围,就是这个变量的作用域(函数和类会影响变量的作用域)

    全局变量:从声明开始,到文件结束都可以使用

    局部变量:在函数类中声明的变量时局部变量。作用域从声明开始到函数结束

    2.2 global和nonlocal

    globai在函数中声明一个全局变量,使在函数内部可以修改全局变量的值。

    格式:

    global 变量名

    变量名 = 值

    nonlocal在函数中声明函数的时候,才需要使用

    在函数1中的函数2中需要使用实在函数1中声明的变量时,使用nonlocal,格式和global一样

    3.匿名函数

    匿名函数:本质是函数,以一种简单的方式来声明

    匿名函数的声明:

    函数名:lambda 参数列表:返回值 —》结果是一个函数变量

    Lambda 声明匿名函数的关键字

    例如 写一个匿名函数实现两个数的相加

    my_sum = lambda x,y:x+y
    print(my_sum(10,20))
    
    -->
    30
    

    4函数作为变量

    1.声明一个函数就是在声明一个变量。函数名可以当成变量来使用。类型是:function,可以打印,赋值。

    4.1将函数作为参数

    def my_sum(*numbers):#求和函数
        sum1 = 0
        for item in numbers:
            sum1 += item
        return sum1
    
    def my_mul(*numbers):#求积函数
        sum1 = 1
        for item in numbers:
            sum1 *= item
        return sum1
    
    def operation(method, *numbers):#主函数
        return method(*numbers)
                      
    result = operation(my_sum,10,20)
    -->
    
    30
    

    4.2将函数作为函数的返回值

    def get_method(char):
        """ char='-' """
        if char == '+':
            return funb
        elif char == '-':
            def func(m, n):
                return m - n
            return func
        elif char == '*':
            return lambda x,y:x*y
        elif char == '>':
            def func(x, y):
                return x > y
            return func
        elif char == '<':
            return lambda x, y: x < y
        else:
            def func(x, y):
                return None
            return func
    
    print(get_method('+')(10, 20))
    print(get_method('-')(10, 20))
    print(get_method('%')(10, 20))
    
    -->
    30
    -10
    
    

    5递归函数

    5.1什么是递归

    递归函数:在函数的函数体中调用函数本身

    理论上循环能做的事情,递归都可以做

    对递归的要求:能不用就不用

    原因:函数调用的过程是一个压栈的过程,每调用一次函数,系统都要为其分配内存空间,用来存储函数中声明变量和参数等。

    5.2怎么写一个递归函数

    a.找出临界值(跳出循环-->return)

    b.找关系:假设当前函数对应的功能已经实现,找到f(n)和f(n-1)的关系

    c.使用f(n-1)与前面找到关系去实现f(n)的功能

    写一个递归函数实现:1+2+3....+n

    def my_sum(n):
        if n == 1:
            return 1
        else:
            return n+my_sum(n-1)
    

    相关文章

      网友评论

          本文标题:Python 函数2

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