Py修行路 python基础 (八)函数(随时更改)

为何要用函数:

1、解决代码重用的问题

2、提高代码的可维护性,统一维护

3、程序的组织结构清晰,可读性强

 

定义函数

    先定义后使用!!!

def funcname(arg1,arg2,.....)  #funcname = 函数体

 “描述信息”

   函数体

return value

 

定义无参函数   无返回值

def foo()

    print("foo")

 

定义有参函数   接受外部传入的值,有return 返回一个值

def my_sum(x,y)

    return x+y

 

定义空函数    pass

 

调用函数

语句形式:foo()

表达式形式:res=10*my_sum(1,2)

函数调用作为另外一个函数的参数:print(my_sum(1,2))

 

函数返回值

不写return ----->None

return 一个值---->这个值

return 多个值 -----> 由这多个值组成的元组

 

函数的参数

 

形参:定义函数时候用的参数(命名)

 

实参:调用函数时候用的参数(实数) 也可以定义变量值再调用函数

my_sum(1,2)   

 

a=1,b=2

my_sum(a,b)

实参在函数调用的过程中有效,过了就无效!

 

从实参的角度:

  按位置传值 my_sum(1,2)

  按关键字传值 my_sum(y=1,x=2)

  混合传值 my_sum(1,y=2)

 

从形参角度:

  位置参数: def foo(x,y,z) (函数变化比较多)

  默认参数: def foo(x,y=1)(函数变化不多,调用次数不多)

 

什么时候用?

二者的位置排列?

二者的特性?

 

*args  def foo(x,*args)

按位置传值,多余的值被*接收,组成元组的形式

**kwargs  def  foo(x,**kwargs)

按关键字传值,多余的值被**接收,组成字典的形式

 

*args 接收元组,列表,字符串,集合,输出是元组
**kwargs 接收字典,输出也是字典

 

def foo(x,*args,**kwargs)

foo(1,2,3,4,5,6,a=1,b=2,c=3)

x=1

args=(2,3,4,5,6)

kwargs={"a":1,"b":2,"c":3}

posted @ 2017-04-08 16:34  细雨蓝枫  阅读(283)  评论(0编辑  收藏  举报