函数的初识
什么是函数:
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。Python提供了许多内建函数,比如print(),len()等。但也可以自己创建函数,这被叫做用户自定义函数。
函数关键字:
def:定义(申明)一个函数
用法:
def make(): # 函数体
注意:定义后的函数不调用是不执行的
函数名+() == 函数的调用
例:
def make(): print(1) make()
注意:先定义后调用
函数执行过程:
定义 --> 调用 --> 函数体的代码
函数名加小括号,不管在什么位置就是在调用函数
def make(): print(1) print(2) print(3) input(make())
def make(): print("掏出手机") print("打开微信") print("摇一摇") print("聊一聊") print("搞一搞") make() print("去医院看看") make() print("看看书")
函数的返回值:
def make(): print("掏出手机") print("打开陌陌") print("找个妹子") print("询问一番") print("盘她") return "萝莉", "少妇" ret = make() print(ret)
返回值单个就它本身,多个就是一个元组
返回值写了return没有写内容,返回的就是None
没有写return返回的也是None
return下面的代码都不执行,并且结束了这个函数
返回值返回给调用者
return关键字的作用
1,结束整个函数。
2,给函数的执行者(调用者)返回值。
函数的参数
def make(char,addr): # 形参 print("掏出手机") print("打开%s" % char) print("找一个%s" % addr) print("聊一聊") make("微信","北京") # 实参 make("陌陌")
将实参传递给形参的过程——传参
形参和实参的位置一一对应
位置参数:按照位置传值
def func(x,y): pass func("a", "b")
默认参数:将变化比较小的值设置成默认数值
def func(a, b=10): print(a + b) func(10)
混合传参:位置、关键字形式混着用
位置参数+默认参数
位置参数+关键字参数(位置参数必须放在关键字参数)
def func(a, b, c): print(a, b, c) func(b=1, c=2, a=3)
关键字参数:通过形参的名字指定传参
关键字参数之间可以不按位置顺序
正确用法
问题一:位置参数必须在关键字参数的前面
问题二:对于一个形参只能赋值一次
动态参数:
用途:在不明确接受参数的数量时使用*args和**kwargs
def func(*args): # 在形参位置*叫做聚合 print(args) # 元组形式 (1, 2, 3, 4) func(1, 2, 3, 4)
def func(**kwargs): # 动态默认参数 # 形参的时候**聚合 print(kwargs) # 字典{'a':1,'b':2,'c':3} func(a=1,b=2,c=3) # 关键字的形式传参
args和kwargs 是可以更换的,但是程序员约定俗成都用它
形参顺序:
位置>动态位置>默认>动态默认
实参顺序:
位置>关键字
def func(*args,**kwargs): # *聚合 print(*args) # *打散 # 1,2,3 print(*kwargs) # a,b func(1,2,3,a=1,b=2)
在实参调用的时候*是将可迭代的对象打散,字典只输出键
在实参调用的时候**将字典打散成 关键字参数(键=值 )
在形参处出现**就是将关键字参数聚合成字典
三元运算符:
变量 = 条件成立的结果 if 条件 else 条件不成立的结果 应用场景:
三元运算符在不确定赋值的时候会用到,只能用if..else..,不能加elif...