一. 什么是函数
函数: 对代码块和功能的封装和定义
定义⼀个事情或者功能. 等到需要的时候直接去⽤就好了. 那么这里定义的东西就是⼀个函数.
函数名命名规则和变量命名规则一样
语法:
def 函数名(形参): #定义函数
函数体 #调用函数之后会执行的代码
函数名(实参) #调用函数
def yue(): print("约你") print("约他") print("我不约") return "高兴" # return 返回值 当函数结束的时候. 给调用方一个结果 print('不高兴') #不会被执行 ret = yue() print(ret) #输出结果: # 约你 # 约他 # 我不约 # 高兴 # 只要函数执行到return 函数就会停止执行 # 1. 每个函数如果在函数中不写return, 默认返回None # 2. 我们也可以只写一个return, 也是返回None, 停止函数的执行 # 3. return 一个返回值. 你在调用方能接受到一个返回值 # 4. return 多个返回值. 多个值需要用','隔开. 接收的位置, 接收的是元组. def yue(): print("约你") print("约他") print("我不约") return "高兴" ,"非常高兴","很高兴" #返回值若有多个,接受形式的元组,我们也可以直接对结果直接解构. print('不高兴') #不会被执行 ret = yue() print(ret) #输出结果: # 约你 # 约他 # 我不约 # ('高兴', '非常高兴', '很高兴')
#解构返回值 def yue(): print("约你") print("约他") print("我不约") return "高兴" ,"非常高兴","很高兴" print('不高兴') #不会被执行 ret1,ret2,ret3 = yue() print(ret1,ret2,ret3) #输出结果: # 约你 # 约他 # 我不约 # 高兴 非常高兴 很高兴
二. 函数参数
参数, 函数在调⽤的时候指定具体的⼀个变量的值. 就是参数.
函数的参数个数是没有要求的,但是,在运行的时候,形参和实参要匹配,按照位置吧实参赋值给形参
参数分类:
站在实参的角度:
1.位置参数
2.关键字参数
3.混合参数,注意顺序. 先写位置参数,然后写关键字参数.否则会报错
站在形参的角度:
1.位置参数
2.默认值参数
3.默认值参数和位置参数混合使用. 顺序: 先写位置参数. 然后写默认参数
def 玩手机(gongju,name): #()内为形参 print("拿出手机") print("打开%s"% gongju) print("找到%s"% name) print("问她是不是傻") return'她说:对,我就是傻','但是我漂亮啊','而且还会才艺展示!' 玩手机('抖音','脱xx') #实参 玩手机('陌陌','阳xx') #输出结果: # 拿出手机 # 打开抖音 # 找到脱xx # 问她是不是傻 # 拿出手机 # 打开陌陌 # 找到阳xx # 问她是不是傻
形参: 在函数声明的位置.声明出来变量
实参: 在函数调用的时候. 实际你给函数传递的值
函数的参数个数是没有要求的 但是,在运行的时候. 形参和实参要匹配. 按照位置把实参赋值给形参
def tuo(name,age,sex,address,hobby): print("%s今年%s岁了,是一个%s孩子,在%s上大学,爱好是%s"% (name,age,sex,address,hobby)) tuo('脱xx','18','女','宁夏','玩抖音') #位置参数 tuo(hobby='玩抖音',name='脱xx',address='宁夏',age='18',sex='女') #关键字参数 #输出结果: #脱xx今年18岁了,是一个女孩子,在宁夏上大学,爱好是玩抖音 #脱xx今年18岁了,是一个女孩子,在宁夏上大学,爱好是玩抖音
def sha(id,name,sex='女'): 'sex='女''为默认值参数 print('录入%s号学生信息:名字:%s,性别:%s'% (id,name,sex)) sha(1,'脱xx') #调用函数时如果在形参位置给了对应的默认值参数,对应默认值参数位置的实参可以不给值 sha(2,'阳哥哥') sha(3,'代xx') #输出结果: #录入1号学生信息:名字:脱xx,性别:女 #录入2号学生信息:名字:阳哥哥,性别:女 #录入3号学生信息:名字:代xx,性别:女