函数

函数

参数

  形参 和 实参:形参不是实际存在,定义函数时,用来接收实参用

  位置参数(必须参数):实参必须和形参一一对应

  关键字参数:def fun(关键字一,关键字二)  

        fun(关键字2= 实参1,关键字1 = 实参2)

  默认参数:def fun(关键字一,关键字二 = ‘male’)   用的时候直接 fun(实参1)  若想改则 fun(实参1, ‘female’)

    注意:默认参数要在非默认参数的后面,否则报错

  不定长参数:def(*args)      *args接收无命名的参数 

          print(args)      # *args是都默认这么写 *任意 例如*abc也是这个功能,其实*就是类似于通配符的作用

        def(**kwargs)      **kwargs接收 关键字1 = 实参2 类型的参数   

          例如:  
1 def print_info(**kwargs):
2     for i in kwargs:
3         print(i,kwargs[i])
4 print_info(a=1,b=2,c=3)
View Code

         i是键 kwargs是所有的值   要取i对应的值: kwargs[i] 即可

  优先级:def(name,age=22,*args,**kwargs)  必须参数(又叫关键参数,默认参数,不定长参数(元组),不定长参数(字典))

return返回值 1.结束函数 2返回某个对象给调用者即func()   例如 return 10,则func()=10, print(func())>>>10

  注意:1.不写return则默认return None

     2.return 10,’abc',[1,2,3]  会封装成 一个元组返回,需要print(函数名())才能看到返回对象,不打印看不到

高阶函数:1函数名相当于一个变量,函数名可以赋值例func = foo。2 函数名相当于一个变量,可以作为其他函数的参数,还可以作为返回值(另外,函数运行的结果也可以作为返回值,不过这种不常用)。      

  例如: 
 1 def f():
 2     def g():
 3         return 8
 4     return g
 5 print(f())
 6 #得到<function f.<locals>.g at 0x0000000002801840>
 7 
 8 def f():
 9     def g():
10         return 8
11     return g()
12 print(f())
13 #得到8
View Code

 

递归函数:递归都可以通过循环来解决。递归效率很低,不推荐用

posted @ 2017-12-05 16:25  Andy__li  阅读(199)  评论(0)    收藏  举报