python---函数基础

1、认识函数
举例说明:
我们每个人都使用过闹钟,不论是手机上或传统闹钟,他的功能都是定时调用,只要功能不解除,它就会随着时间的循环重复响铃的动作。按照程序的观点来看,闹钟定时调用的功能就是我们所谓的“函数”或者是“方法”。
简单的来说:函数就是功能,过程。
2、定义函数
语法:
def 函数名称(参数列表):
space-函数主体
space-return(返回值)
def是关键字,用来定义函数
函数名称:命名规则同变量的命名规则
参数列表:也叫形参列表,用来接收数值的
函数主体:具体实现函数的功能
return:用来返回运算后的值
3、调用函数
python---函数基础
4、函数类型

  • 按照参数分类:

有参函数:
例如
python---函数基础
无参函数
例如
python---函数基础

  • 按照是否有返回值分类:
    有返回值:
    python---函数基础
    python---函数基础
    无返回值:
    python---函数基础
    python---函数基础
  • 按照定义者分类

系统函数
自定义函数
第三方定义

5、全局变量和局部变量

全局变量:在函数外定义的变量,也就是调用变量的时候在整个代码中都可以使用。
局部变量:在函数内部定义的变量,也就是只能在函数内部使用。
注意点:
1、函数使用全局变量的问题----在python中如果在函数内部修改全局变量,一定要声明
例如
若是不声明出现的结果
python---函数基础
python---函数基础
声明后的结果
python---函数基础
分析原因
1、首先函数存放的位置是在堆中存放
2、函数调用的过程:压栈过程,等函数执行后立刻出栈
3、python语言执行代码的顺序是从上到下依次进行
4、栈的特点:先进后出
python---函数基础
之所以等函数调用执行后,弹出去,才会执行变量a,这样就会导致报错。
6、引用传递
引用传递:就是在栈中出现两个相同的存放函数地址,指向同一堆(函数)
例如
python---函数基础
test是一个函数,这里将test赋值给a,那么此时的a也将会是个函数,他么共有相同的堆,两个相同的栈地址,此时名字不同;若是给a调用函数将会出现一下信息
python---函数基础
python---函数基础
7、函数的参数
默认值参数----指定义函数时,将形参给一个默认值,当调用函数某个参数没有传递数据时,可以将形参中的默认值来使用
语法
python---函数基础
注意:形参必须放在默认参数之前
命名参数-------会将普通参数无法接收的参数统一接收,此时,接收的内容以字典的形式从在
语法:
python---函数基础
可变参数-------会将普通参数无法接收的参数统一接收,此时,接收的内容以元组的形式从在

python---函数基础
万能参数--------就是可变参数和命名参数的组合

python---函数基础
8、递归函数
函数的递归:就是函数自身调用自身
注意:递归必须有终止条件,否则将会出现死循环(python默认1000次)
例如:计算1-100的和+python---函数基础
第一次
100+sum(100-1)
第二次
100+99+sum(99-1)



最后一次
100+99+98+。。。+0
9、lambda表达式
lambda把表达式其实就好java中的匿名函数
语法:
python---函数基础建议:简单使用,复杂不使用