一、函数的定义
函数就是对功能的封装。
如何理解呢?打个比方你在一周当中每天都要干什么,这时你需要制定计划表来规划你每天要做的事情,然后计划表制定好了,还要付诸于行动。
我们可以把计划表的名字看成函数的命名、把计划表的内容看成函数体、付诸于行动看成调用函数、
由此 可以想到函数的定义格式 :
def 函数名()
函数体
调用函数名()
1 def func(): 2 print("hello word") 3 func()
二、返回值
我们在付诸于行动之后得到的收获就可以看成为函数体的返回值return
返回值中的注意事项:
1.如果函数体什么都不写,返回的值为None
2.在函数的中间或末尾写return,返回值为None
3.在函数中间写return,返回一个值
4.在函数中可以写多个值,return返回的也是多个值,以元组的形式显示。
三、参数
1.参数可分为三大类:形参、实参与传参。
实参:
实参就是在函数调用的地方具体的值
形参:
形参就是在函数声明的位置的变量
传参:
传参就是把实参交给形参的过程
2.实参又包括:位置参数、关键字参数与混合参数
位置参数:
是按照形参的参数位置给形参传值
关键字参:
数是按照形参的名字给形参传值
混合参数:
是即用位置参数又用关键字参数,关键字参数必须放在位置参数后。
3.形参又包括:位置参数、默认值参数与动态参数
位置参数:
是在参数中所占的位置,通过位置来将实参传给形参
默认值参数:
默认参数的赋值只会在函数定义的时候绑定一次,默认值不会再被修改
动态参数:
这里要提及一下解包裹参数*与**
定义函数时,有时候我们不确定调用的时候会传递多少个参数,此时我们通过解包裹参数来将多个参数一起传值。
(1)*位置参数:可接受任意数量的位置参数(元组);只能作为最后一个位置参数出现,其后参数均为关键字参数
1 def eat(*food): 2 return food 3 print(eat("地三鲜","宫保鸡丁","肉段茄子")) 4 print(eat())
(2).**关键字参数:可接受任意数量的关键字参数(字典);只能作为最后一个参数出现
1 def eat(**food): 2 return food 3 print(eat(good="地三鲜",not_good="烤冷面"))
(3)位置参数、默认参数、可变参数的混合使用
当我们需要将多个参数混合使用时需要遵守这样一个顺序: 位置参数=> 动态参数=> 默认值参数=> 关键字参数
1 def active(name,*eat_food,loacltion="天宫"): 2 print(name+"在"+loacltion+"吃",eat_food) 3 4 active("某某","地三鲜","烤冷面","大菠萝")
5 #运行结果:某某在天宫吃("地三鲜","烤冷面","大菠萝")