Python函数
函数是组织好的,可重复使用,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性和代码的重复利用率。
函数是具有名称能够完成某一特定功能的代码的集合
定义一个函数
代码示例:
def function_name([arg…]):
#函数体
[return 返回值]
函数的调用:
function_name()
示例:
#定义函数
def show(name,age,sex)
"""
打印自己姓名,年龄 ,性别
"""
print show
#调用函数
show()
函数分类:
①定义的函数有没有参数
无参函数
有参函数
②定义的函数是否有返回值
无返回值
有返回值
在函数中,当遇到return关键字的时候,,函数会立即返回
全局变量和局部变量:
全局变量:定义在模块中,可以在该模块中定义后的任何地方都可以访问
局部变量:定义在函数内部的变量,作用域只是在当前函数内有效,出了函数,无法访问
注意:
在函数中,可以访问到全局变量,但是在函数中不允许修改全局变量,如果确实在函数内需要修改全局变量,,必须提前申请。例:global 全局变量
函数的调用:
压栈,函数调用本质就是讲堆中的函数调用到栈中执行,这个过程称为压栈,等函数执行完成,会立即执行出战(弹栈)
应用传递和值传递
值传递:本质就是传递数据值的拷贝,跟原先的那个值没没有关系
引用传递:本质是传递指针(地址),所以说是指操作的就是堆
函数的参数问题:
必备参数:
调用函数必须以正确的顺序传入函数,调用是的数量必须和申明是一样。
默认值参数:
调用函数时,默认参数的值如果没有传入,则被认为是默认值。如果传入的参数与默认的值一样,就可以不用传递这个参数。
def show(name,age=16)
pass
注意:
默认值参数,必须放在必备参数后面!!!
可变参数(不定长参数):
函数传递函数比当初申明是更多的函数。
args以元组的形式存在
def show(name,age=16,*args):
pass
命名参数(关键字参数):
def show(name,age,kwargs):
pass
kwargs是以字典的形式存在
函数递归:
函数 自身调用自身
注意:必须有终止条件,没有终止条件的递归是一个死循环