python-函数(调用、return返回值、参数、作用域)

一、格式

1、定义函数格式:

def 函数名称():  

        函数体

函数名称是标识符,要符合标识符的命名规则,一般是蛇形命名;函数体是要运行的代码

2、调用函数格式:函数名称()

函数调用,一个函数当中可以调用另一个函数,如调用自身则是递归,死循环;顺序执行,要先定义函数再调用  

二、函数返回值

return  (python中的关键字/保留字),返回结果不要有表达式

作用:

1、函数体中遇到return值会终止运行,return后面的语句不再执行

2、当函数执行完后,想让函数体外程序得到函数执行的结果,可以是任意类型,包含None

3、当函数体内没有return,默认返回None

如何显示返回值

1、若只是单独调用  函数名称() 则不会打印出return值  需print(函数名称())或赋予某一变量然后将变量打印出

python-函数(调用、return返回值、参数、作用域)_第1张图片

 之前的append()  remove()方法,返回值为None

python-函数(调用、return返回值、参数、作用域)_第2张图片

 pop()方法 返回的是被删除的元素

python-函数(调用、return返回值、参数、作用域)_第3张图片

 三、参数

1、参数分为形式参数、实际参数;形式参数是定义函数时的,是变量名;实际参数是函数调用时的,是给变量赋值;位置参数一定要放在最前面,关键字参数、默认参数则可随意

2、位置参数,位置参数是不赋予值;位置参数,形参的个数、位置与实参保持一致
python-函数(调用、return返回值、参数、作用域)_第4张图片

 3、关键字参数,是实参赋值,即:调用是给值。若全是关键字参数则不用考虑顺序,在调用函数时做一个关键字标记,以防传参错误,造成损失,用于标识数据

python-函数(调用、return返回值、参数、作用域)_第5张图片

 4、默认参数,是形参赋值,即:定义时赋值。定义函数时给形参赋值,成为默认值,调用时可少传参,若调用时也赋值则覆盖

python-函数(调用、return返回值、参数、作用域)_第6张图片

 5、不定长参数,分为位置参数不定长、关键字参数不定长

位置参数不定长,不确定会传入多少个参数,形参加一个*  (*args),将形参解析为元组,接收所有传进来的参数,返回值return也是元组

python-函数(调用、return返回值、参数、作用域)_第7张图片

python-函数(调用、return返回值、参数、作用域)_第8张图片

 若形参含有位置定长参数,传入的参数前面的会赋予给位置定长,后面的才给位置不定长参数python-函数(调用、return返回值、参数、作用域)_第9张图片

实参加*,是拆包,将多个元素拆开成一个(只会拆一层),一个一个的传入;只会拆列表、元组

python-函数(调用、return返回值、参数、作用域)_第10张图片

关键字参数不定长,即:形参加两个*(**kwargs),将形参解析为字典,接收传来的参数,返回值也是字典

python-函数(调用、return返回值、参数、作用域)_第11张图片

实参加**则解包,搭配字典使用

python-函数(调用、return返回值、参数、作用域)_第12张图片

 混合使用

python-函数(调用、return返回值、参数、作用域)_第13张图片

 总结:

*args是位置参数不定长,返回元组;实参加*,拆包,可拆列表、元组(以列表、元组形式传入)

**kwargs是关键字不定长,返回字典;实参加**,拆包,可拆字典(以字典形式传入)

 四、作用域

函数作用域,即:变量起作用的区域;分为内置、全局、局部,作用范围:内置>全局>局部

1、内置,是python提供好的,范围很大,可随意使用

2、全局,定格写的数据,在函数体外全部可调用

3、局部,函数内部的变量,只能在函数体内使用;形参、实参是局部变量

局部vs全局:

1、局部空间可获取全局变量

2、局部作用域(函数体内)不可直接修改全局变量,需在体内声明下,加global

3、函数体外不可直接获取局部变量,需用return返回值获取

4、函数体外不可修改局部变量 

你可能感兴趣的:(python基础,python)