1.数学定义的函数与Python中的函数
print(函数名)
打印出函数的地址
2.Python中函数重名,使用最后一个
因为Python是解释器,顺序执行
3.函数与过程
过程就是没有返回值的函数
获取的话是None
4.参数组
**字典
*列表
一个*是列表,两个*是字典
def test(x,*args)
可变长度的参数,可以不穿参数的
test(1,['x','y'.'z'])
将第二个参数当成整体传给args
test(1,*['x','y'.'z'])
将第二个参数当成列表遍历一遍传给args
def test(x,**kargs)可传入字典
def test(x,*args,**kargs)
传入列表和字典,列表必须在前
5.局部变量和全部变量
在函数中如果需要修改全局变量,需要global
name="asdf"
def change_name():
global name
name="fff"
print
change_name()

如果函数内部变量前面没有global,则只能读,写的话(直接赋值)就是创建新的局部变量
但是可以对全局可变变量进行添加
name.append("tjl")

声明全局变量必须在函数开始
一般全部变量全部大写,局部变量小写
函数可以嵌套定义
6.
nolocal使用嵌套函数上一级的变量
7.前向引用
引用后面定义的函数
风湿理论:函数即变量

8.递归
特性
必须有一个明确的结束条件
每次进入更深一层递归时,问题规模相比上次递归都应有所减少
递归效率不高,递归层次过多会导致栈溢出