函数的定义
在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块,组织为一个小模块,这就是函数
函数定义和调用

注意
- 定义了函数之后,就相当于有了一个具有某些功能的代码,想要让这些代码能够执行,需要调用它
- 调用函数很简单的,通过 函数名() 即可完成调用
- 每次调用函数时,函数都会从头开始执行,当这个函数中的代码执行完毕后,意味着调用结束了
- 当然了如果函数中执行到了return也会结束函数
为了让一个函数更通用,即想让它计算哪两个数的和,就让它计算哪两个数的和,在定义函数的时候可以让函数接收数据,就解决了这个问题,这就是 函数的参数
函数的参数
<1> 定义带有参数的函数
示例如下:
def add2num(a, b):
c = a+b
print c
<2> 调用带有参数的函数
以调用上面的add2num(a, b)函数为例:
def add2num(a, b): # 定义接受两个参数的函数
c = a+b
print c
add2num(11, 22) # 调用带有参数的函数时,需要在小括号中,传递数据
小总结
- 定义时小括号中的参数,用来接收参数用的,称为 “形参”
- 调用时小括号中的参数,用来传递给函数用的,称为 “实参”
函数的分类
- 位置参数 : 参数调用时,传入的参数个数要和位置想匹配
- 关键字参数: 参数调用时,可以改变传参顺序,如果有位置参数需要位置参数放在关键字参数前面
- 关键字参数: 如果关键字参数传参要在位置参数之前,将会报错
- 缺省参数: 在形参中默认有值的参数,称之为缺省参数 调用函数时,缺省参数的值如果没有传入,则取默认值(形式参数),如果传入,则取实际参数
- 不定长参数: 有时可能需要一个函数能处理比当初声明时更多的参数, 这些参数叫做不定长参数,声明时不会命名。
- 不定长参数* args 会存放所有未命名的变量参数,args为元组
- 不定长参数* * kwargs 会存放命名参数,即形如key=value的参数, kwargs为字典.
位置参数
关键字参数
如果关键字参数传参要在位置参数之前,将会报错
缺省参数
注意:缺省参数一定要位于位置参数的最后面
不定长参数
基本语法如下:
- 有时可能需要一个函数能处理比当初声明时更多的参数, 这些参数叫做不定长参数,声明时不会命名
- 加了星号(*)的变量args会存放所有未命名的变量参数,args为元组 而加**的变量kwargs会存放
- 命名参数,即形如key=value的参数, kwargs为字典(**).
不定长参数 *args
不定长参数* * kwargs
注意参数传递的对应
注意不加 * 与上面的区别
缺省参数在*args后面
假如缺省参数在*args前面
参数位置顺序
格式:
def
fun
(
位置参数,*args,缺省参数,**kwargs
):
代码块
fun
(
参数值
)

函数返回值
查看返回值
多个return
注意
:
一个函数中可以有多个
return
语句,但是只要有一个
return
语句被执行到,那么这个函数就会结束了,因此后面的return
没有什么用处
返回多个数据
函数的嵌套
一个函数里面又调用了另外一个函数,这就是所谓的函数嵌套调用
注意:如果函数
A
中,调用了另外一个函数
B
,那么先把函数
B
中的任务都执行完毕之后才会回到上次函数
A
执行的位置
