Python3函数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhuisaozhang1292/article/details/79954571

面向对象--》类--》class

面向过程--》过程--》def

函数式编程--》函数--》def

使用这些方法具有可提高代码的复用性和可扩展性,面向对象过程编程可以理解为 没有返回值的函数式编程


函数式编程中:函数返回值数 = 0   返回None

                                           =1    返回object(即序列就是序列,字符串就是字符串)

                                           >1    返回元组


参数组:例如 fun(*args) 接收N个位置参数 如(1,2,3,4,5)

                    fun(**args)接收N个关键字参数 如 字典

实例如下:

def fun1(*args):
    print(args)
      
def fun2(**kwargs):
    print(kwargs)
    
fun1(*[1,2,3])      
fun2(name='123')
输出为:
(1, 2, 3)
{'name': '123'}

局部变量与全局变量:

    局部变量一般存在于函数内部,

    全局变量一般 定义在第一级,

    在函数内部修改全局变量需要添加global申明,但是尽量不要在函数内部修改全局变量,也不要在函数内定义全局变量


函数内部可修改 定义的全局list变量等较复杂变量  ,但不能修改字符串和整数变量

如:

list1 = [1,2]
num = 10
str1 = "hclln"


def fun():
    list1[0] = 999
    num = 5
    str1 = "1234"
fun()
print(list1)
print(num)
print(str1)
输出为:
[999, 2]
10
hclln


递归函数:

    特性:1)必须要有一个明确的退出条件

              2)每次进入更深一层递归时,问题规模比上次递归应有所减少

              3)递归效率不高,递归层次过多会导致栈溢出(一般只允许递归999次)


如:

def fun(n):
    
    print(fun(n+1))

fun(0)
错误如下:
Traceback (most recent call last):
  File "F:\eclipse-workspace\algorithm\src\MMP.py", line 9, in <module>
    fun(0)
  File "F:\eclipse-workspace\algorithm\src\MMP.py", line 7, in fun
    print(fun(n+1))
  File "F:\eclipse-workspace\algorithm\src\MMP.py", line 7, in fun
    print(fun(n+1))
  File "F:\eclipse-workspace\algorithm\src\MMP.py", line 7, in fun
    print(fun(n+1))
  [Previous line repeated 995 more times]
RecursionError: maximum recursion depth exceeded


高阶函数:

    变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数

如:

def add(x,y,f):
    return f(x)+f(y)

res = add(3,-6,abs)
print(res)
输出为:
9

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页