zoukankan      html  css  js  c++  java
  • 函数总结

    面向对象编程:类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)) 

  • 相关阅读:
    SCILAB简介[z]
    UG OPEN API编程基础 2约定及编程初步
    Office 2003与Office 2010不能共存的解决方案
    UG OPEN API 编程基础 3用户界面接口
    NewtonRaphson method
    UG OPEN API编程基础 13MenuScript应用
    UG OPEN API编程基础 14API、UIStyler及MenuScript联合开发
    UG OPEN API编程基础 4部件文件的相关操作
    UG OPEN API编程基础 1概述
    16 UG Open的MFC应用
  • 原文地址:https://www.cnblogs.com/BIT-taozhen/p/9783295.html
Copyright © 2011-2022 走看看