• 函数总结


    面向对象编程:类class
    面向过程编程:过程def
    函数式编程:函数def

    函数:
    1 def func1():
    2     'The function definition'
    3     print('func1')
    面向过程,没有返回值的函数:
     1 def func2():
     2     'The function definition'
     3     print('func2')
     4     return 0
     5 
     6 def func3():
     7     'The function definition'
     8     print('func3')
     9     return 1,['sada'],{'asd':'asda'}
    10 
    11 x=func1()#执行了函数并把返回值赋给x
    12 y=func2()
    13 z=func3()
    14 
    15 
    16 print('from func1 return is ',x)#在python中过程被当作返回值为None的函数
    17 print('from func1 return is ',y)
    18 print('from func1 return is ',z)
    19 
    20 
    21 print(func1())#执行了函数并显示返回值
    22 print(func2())
    23 print(func3())

    结论:

    1. 当没有返回值时,返回None
    2. 当有一个返回值时,返回object
    3. 当有多个返回值时,返回tuple

    运行结果:

    参数:

     1 def funcp(x,y):#x,y形参
     2     print(x)
     3     print(y)
     4 
     5 x=1
     6 y=2
     7 
     8 funcp(y=y,x=x)#关键字调用
     9 funcp(3,4)#位置调用,一一对应
    10 funcp(5,y=6)#关键字参数不能写在位置参数前,而且必须一一对应
    11 
    12 
    13 #默认参数
    14 def funcmp(x,y=2):
    15     print(x)
    16     print(y)
    17 
    18 funcmp(1,3)
    19 #特点:调用参数时默认参数可有可无
    20 
    21 
    22 #参数组*args:接收N个位置参数转换成元组,注意*args只接收位置参数
    23 def funcnp(*args):
    24     print(args)
    25 
    26 funcnp(1,2,3,4,5)
    27 funcnp(*[1,2,3,4,5])#args=tuple([1,2,3,4,5])
    28 
    29 def funcmnp(x,*args):
    30     print(x)
    31     print(args)
    32 
    33 funcmnp(1,2,3,4,5)
    34 
    35 #参数组**kwargs:把N个关键字参数转换成字典,注意kwargs只接收关键字参数
    36 def funcdict(**kwargs):
    37     print(kwargs)
    38     print(kwargs['name'])
    39     print(kwargs['age'])
    40 
    41 
    42 funcdict(name='Tao',age='23')
    43 funcdict(**{'name':'Tao','age':'23'})
    44 
    45 
    46 def funcmndict(name,age=23,*args,**kwargs):#参数组放在最后
    47     print(name)
    48     print(age)
    49     print(args)
    50     print(kwargs),
    51 
    52 funcmndict('Tao',sex='m',hoppy='Basketball',age=24)#默认参数赋值有两种方式,1位置参数2关键字参数
    53 
    54 def funcmndict(name,age=23,*args,**kwargs):#参数组放在最后
    55     print(name)
    56     print(age)
    57     print(args)
    58     print(kwargs)
    59 #*args:接收N个位置参数转换成元组,注意*args只接收位置参数
    60 #**kwargs:#把N个关键字参数转换成字典,注意**kwargs只接收关键字参数
    61 funcmndict('Tao',1,2,3,4,sex='m',hoppy='Basketball')

    函数内部调用函数:

     1 ef call(source):
     2     print('from ',source)
     3 
     4 def funccall(name,age=23,*args,**kwargs):#参数组放在最后
     5     print(name)
     6     print(age)
     7     print(args)
     8     print(kwargs)
     9     call('call')
    10 funccall('Tao',1,2,3,4,sex='m',hoppy='Basketball')

    递归:函数自己调用自己

    特性:

    1. 必须有一个明确的结束条件
    2. 每次进入更深一层的递归时,问题规模相比上一次递归都应有所减少
    3. 递归效率不高
    1 def calc(n):
    2     print(n)
    3     if int(n/2):
    4         return calc(int(n/2))
    5     print('-->',n)
    6 calc(10)

    高阶函数:函数接收另一个函数作为参数

     1 def add(a,b,f): 2 return f(a+b) 3 print(add(3,-6,abs)) 

  • 相关阅读:
    【JavaScript基础#2】
    【JavaScript基础#1】
    【2020-05-14】不选择就是一种选择
    【2020-05-13】当前最大价值的提升
    【2020-05-12】做事就是做人
    【2020-05-11】是爱,让我发现了当下风景的眼光
    【2020-05-10】人生十三信条
    【2020-05-09】干中学的又一思考
    【2020-05-08】当前手上拿的,永远都是最好的牌
    【2020-05-07】修炼心态的调整
  • 原文地址:https://www.cnblogs.com/BIT-taozhen/p/9783295.html
Copyright © 2020-2023  润新知