一、函数的定义
1、函数的好处
1)代码重用
2)保持一致性,易维护
3)可扩展
2、函数的结构
def test(x): #def为定义函数的关键字,test为函数名,x为参数(可以带参数,也可以不带参数)
"..................."#注释:解释函数的作用,规范写法
x=x+1#泛指代码块或者程序处理的逻辑
return y #泛指返回值,可以不定义
y=test(3) #运行test这个函数
print(y)
总结:
返回值数=0,None
返回值数=函数名,返回函数返回值
返回值数=其他,返回其他
函数遇到return立马结束
2.1样例
1)没有return,函数返回值为None
def test01(): msg="test1" print(msg) t1=test01() print(t1) 结果: test1 None
2)返回值=1,则返回object
def test01(): msg="test1" print(msg) return msg # return 1,2,3,"a",["nana"],{"name":"cc"} t1=test01() print(t1) 结果: test1 test1
3)返回值>1,返回tuple
def test01(): msg="test1" print(msg) return 1,2,3,"a",["nana"],{"name":"cc"} t1=test01() print(t1) 结果: test1 (1, 2, 3, ‘a‘, [‘nana‘], {‘name‘: ‘cc‘})
二、函数的参数
1、函数的形参和实参
形参:只在函数内部有效,函数调用结束返回,主调用函数后不再使用该形参变量,形参只有调用时才分配内存空间
实参:包含常量、变量、表达式和函数
def cal(x,y):#x,y为形参
res=x**y
return res
res=cal(2,3)#2,3为实参
print(res)
2、位置参数与关键字
位置参数中形参与实参必须一一对应
关键字,位置无需固定
关键字和位置参数混合使用时,位置参数必须在关键字的左边
2.1样例
位置参数&关键字 def test01(x,y,z): print(x) print(y) print(z) test01(1,4,2) #位置参数 test01(x=3,y=4,z=8)#关键字
test01(66,88,z=109)
3、默认参数
def handle (x,type="mysql"):#type="mysql"为默认函数 print(x) print(type) handle("hello") handle("hello","sql") handle("hello",type="love")
4、参数组:非固定长度的参数,*列表相关,**字典相关
1)*列表相关
def handle (x,*args):# print(x) print(args) handle(1,2,3,45,77,988) handle(2) handle(3,{"name":"cc","age":19})#按位置参数方式传值于形参对应的值 handle(4,*["a","xx","as"])#*转换为一个列表 结果: 1 (2, 3, 45, 77, 988) 2 () 3 ({‘age‘: 19, ‘name‘: ‘cc‘},) 4 (‘a‘, ‘xx‘, ‘as‘)
2)**字典相关
def handle (x,**kargs): print(x) print(kargs) handle(1,y=12,z=66) #handle(2,y=77,z=88,y=99)#一个参数y不能传两个值,会报错 结果: 1 {‘z‘: 66, ‘y‘: 12}
3)*列表相关,**字典相关组合
def handle (x,*args,**kargs): print(x) print(args) print(kargs) print(kargs,kargs.get("y")) handle(1,2,33,445,566,xx=1,y=23,z=990) handle(2,*[11,22,33],**{"y":7777}) 结果: 1 (2, 33, 445, 566) {‘xx‘: 1, ‘z‘: 990, ‘y‘: 23} {‘xx‘: 1, ‘z‘: 990, ‘y‘: 23} 23 2 (11, 22, 33) {‘y‘: 7777} {‘y‘: 7777} 7777
原文:https://www.cnblogs.com/xucuiqing/p/11553261.html