Python3函数

面向对象--》类--》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

六、有兴趣接电子设计相关小型项目的请加下群,每个项目一般在1000元以内,非诚勿扰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值