初识函数

一、函数简单了解

1、什么是函数

函数类似于人们使用的工具,帮助解决重复出现的任务,实现一类相同的任务

2、函数的组成

一个函数由函数名、参数、函数体、返回值(可有可无)组成,类似于如下形式

def my_len(s):  # 自定义函数
    n = 0
    for i in s:
        n += 1
    return n


def 函数名(形参1,形参2...):
    '''函数的注释 用来描述该函数的作用以及各个参的类型'''
    函数体代码1
    函数体代码2
    ...
    return 函数的返回值

3、函数的使用

若函数需要传参数,则函数调用需要在传输的参数之后;若函数不需要传参数,则函数可在任意地方调用。函数调用的规则是函数加括号,需要接收返回值的时候可以写成“变量名=函数名()”的形式。使用返回值时可以调用被赋值的变量。

二、函数的返回值

函数的返回值是由return实现的

返回值可以没有,可以不写return,不写return和写return不加值的两种形式返回值都是None。

可以由一个返回值,即return后加放一个值,以一个变量直接接收

可以返回多个值,即return后加放多个值,若用一个变量接收多个返回值,接收到的数据为元组的形式,可以用解压赋值或for循环获取元组中的每个值

返回值以元组的形式存在的优点:可以不被别人在使用的过程中修改某个函数的返回值。

三、函数的参数

按照函数的定义阶段和调用阶段,函数的参数可以分为形参和形参。

所谓形参,就是在定义函数的阶段,写在函数名后的括号内的参数;所谓实参,就是在调用函数时,实际写在括号中的有意的参数。

与变量名和变量的关系作比较,形参就相当于变量名,实参就相当于变量的值。函数调用传参的过程就相当于给变量名赋值的过程。

PS:函数的形参与实参的绑定关系只在函数调用的时候有效,当函数执行完毕后,绑定关系自动解除,直到下一次调用时再次绑定。

四、位置参数

1、位置参数

位置参数:在函数定义的时候,按照一定的顺序定义的形参,即特定位置的变量名

所谓的位置传参,就是在调用函数传参数的时候,按照函数定义时的形参位置,将特定功能的实参按照形参的位置进行传参。

位置参数在传参的时候必须传值,形参的位置参数有多少个,实参传的个数必须预期相等

2、关键字传参

关键字参数:在传实参的时候,实参可写为“形参=变量值”的形式,指定给某个形参传值。

3、关于位置参数的传参问题

位置传参和关键字传参可以混用,但是位置传参必须放在关键字传参前,同一个形参不能被多次赋值。

五、默认参数

默认参数:在函数定义的阶段给形参赋值,默认参数要定义在位置参数之后

默认参数在传参的时候可以选择传参或则不传,若传则用传的参数值,若不传则用函数定义阶段默认的参数值

当形参接收的值比较单一的时候,可以使用默认参数定义,例如形参接收的参数只有Ture或False。

六、可变长参数

什么叫可变长参数?

一个可以接收多个实参且接收的实参的个数可以改变的参数叫做可变长参数

可变长参数可以用*和**接收

站在形参的角度

形参中的*会将多余的位置实参同意用元组的形式处理,传递给其后面的形参名;**会接收所有多余的关键字参数并将关键字参数转换成字典的形式,字典的key就是关键字的名字,字典的value就是关键字的名字指向的值,**将字典交给后面的变量名

站在实参的角度

*只能将列表、字符串、元组和集合传给函数使用(不建议使用字典),函数可以用多个形参解压赋值,后者用一个可变长形参接收,使用的时候在解压赋值;**可以传字典类型的数据,会将字典拆成key=value的形式,形参在接收时的形参名必须时字典的key。

原文地址:https://www.cnblogs.com/le-le666/p/11160773.html