1.函数
函数是对功能的封装
语法:
def 函数名()
函数体
调用:
函数名()
2.返回值
return:在函数执行的时候,如果遇到return,直接返回
1.如果函数什么都不写,不写return,没有返回值,得到的是None
2.在函数中间或者末尾写return,返回值是None
3.在函数中写return值, 返回一个值
4.在函数中可以返回多个值,return 值1,值2,值3 ....., 接受的是元组
3.参数
函数执行的时候给函数传递信息
形参:函数声明的位置的变量
实参:函数调用的时候给的具体的值
传参:把实参传给形参的过程
1.实参:
1.位置参数,按照形参的参数位置,给形参传值
2.关键字参数,按照形参的名字给形参传值
3,.混合参数,既用位置参数,也用关键字参数 (先位置参数在关键字参数
2.形参:(顺序:位置参数=>*args=>默认值参数>=**kwargs)
1.位置参数
2.默认值参数 (先位置后默认值)
3.动态参数
* 在这里表示接受位置参数的动态传参,接收到的是元组
def chi(*food): # 参数名是food *表示动态传参
print(food)
** 在这里表示接受关键字参数的动态传参
def chi(**food)
print(food)
函数的注释
def func(a,b): ''' 这个函数用于计算a和b的和 :param a:第一个数据 :param b:第二个数据 :return:返回的是两个数的和 ''' return a + b print(func.__doc__) # document文档
打撒与聚合
def func(*food): # 聚合,位置参数 print(food) lst = ['鸡蛋','煎饼果子','猪蹄','冰淇淋','盖浇饭'] func(*lst) # 打撒,把list,tuple,set,str进行打撒迭代
def func(**kwargs): # 聚合成关键字参数 print(kwargs) dic = {'name':'dabai','age':'20'} func(**dic) # 打撒成关键字参数
命名空间
1.内置名称空间
2.全局名称空间
3.局部名称空间
作用域:
1.全局作用域:内置+全局
2.全局作用域:局部(函数被调用)
globals() 查看全局中的内容
locals() 查看当前作用域中的内容
函数嵌套
函数可以互相的嵌套
a = 1 def fun_1(): a = 2 def fun_2(): nonlocal a a = 3 def fun_3(): a = 4 print(a) print(a) fun_3() print(a) print(a) fun_2() print(a) print(a) fun_1() print(a) # 结果是1,2,3,4,3,3,1
a = 1 def fun_1(): a = 2 def fun_2(): global a a = 3 def fun_3(): a = 4 print(a) print(a) fun_3() print(a) print(a) fun_2() print(a) print(a) fun_1() print(a) # 结果是1,2,3,4,3,2,3
4.global和nonlocal关键字
global:在局部访问全局中的内容
nonlocal:在局部寻找外层函数中离他最近的那个变量