函数:
-
什么是函数:
python是一门面向对象的语言
函数是行为,就是动作,就是功能,过程。 -
python是如何定义函数:
函数的名称命名规范就是变量命名规范
def 函数名([参数列表]):
#函数体
#[return 返回值] -
函数的分类:
分类标准:
(1)有无返回值:
|–有返回值的函数
使用return关键字,则立刻返回
|–无返回值的函数
(2)有无参数:
|–有参数:
参数的个数,根据情况任意
参数类型,是任意类型
|–无参数:
函数定义者:
|–系统函数:
有官方定义的函数:
print , input , type
|–第三方定义:
需要安装这些函数模块,才能使用
pip install模块名称
pip(python install package)
|–自定义函数
注意:(函数,变量…)命名时一定要注意,和系统函数不能冲突!!![在这里插入图片描述](https://img-blog.csdnimg.cn/20210120182339539.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ3MjE4OTkw,size_16,color_FFFFFF,t_70#pic_center)
4**. 全局变量和局部变量**:
全局变量:
直接定义在py(模块)文件中的变量
局部变量:
定义在函数内部的变量叫局部变量
因此只能在函数内部使用,访问在外间访问到!!!
注意:全局变量在函数直接访问,可以正常访问,
如果要在函数内部修改全局变量,python中不让修改。
若要强制修改?
提前声明: 这个函数要修改某个局部变量
在函数的第一行,global关键字声明需要修改全局变量。
函数调用的本质:
压栈(push):将函数从堆内存中,放到栈中执行。
弹栈(pop):函数执行完成后出堆内存。
引用传递和值传递:
引用传递:
传递的本质是地址,是对象,是引用
值传递:
本质就是值
函数本质就是一个对象,参数的类型,是任意类型。
函数的参数:
默认值参数:
就是说,如果函数的参数,在大多数情况下,固定一个值,此时可以使用默认值参数。
这个时候,如果不传参数,值就取默认的,如果传递了参数,则按照传递的算。
注意:默认值参数,一定要写在普通参数之后。
可变参数:
在python,如果一个函数中参数可能有很多(这些参数,也可以没有),建议将这种参数设置为可变参数。
参数名称(习惯性args)
注意:可变参数默认值是以元组封装所有参数。
递归函数:
1.什么是递归:
以代码论英雄
有两个条件:
1.函数自身调用自身。
2.一定要有终止条件!!(否则是一个死循环)
注意:python中,不允许递归函数超过1000次,当然如果一定要调整,可以使用如下代码:
import sys
#获取递归限制次数:
sys.getrecursionlimit()
#重新设置递归限制次数
sys.setrecursionlimit(10000)