一段封装的代码,在用到它时进行调用
一个最简单的函数
def fun1():#定义一个函数 print('hello')#函数内容 fun1()#调用函数,执行函数内的代码 --->'hello'
函数也可以返回一个值
def fun2():#定义函数 return 'hello'#返回值 print(fun2())#把返回值打印出来 --->'hello'
1.return之后函数不再运行
2.return可以返回多个值
3.当返回多个值时,会以元组的形式返回
def sumdata(a,b):#a,b--形参 return a+b#返回a,b的和 print(sumdata(5,5))#5,5--实参 --->10
def sumdata2(a=2,b=5):#形参可以给个缺省值,不传实参时则使用缺省值 return a+b sumdata() --->7#不传实参,则使用函数的缺省值,即2+5 sumdata(10) --->15#只传参a为10,则运行10+5
函数调用时,参数的多种写法
def sumdata2(a=98,b=196):#a,b参数的缺省值为98,196 return a+b print(sumdata2()) --->294#没有传参数,使用函数的缺省值98+196 print(sumdata2(100)) --->296#替换a的值,b使用缺省值,即100+196 print(sumdata2(b=100)) --->198#替换b的值,a使用缺省值,即98+100 print(sumdata2(3,6)) #用户输入值,使用用户的值 print(sumdata2(3,b=6)) --->9#先简略写法,后完整写法 print(sumdata2(a=3,6)) --->#先完整写法,后简略写法,报错 print(sumdata2(a=3,b=6)) --->9#所有参数都用完整写法
允许用户输入任意数量的参数
def fun3(a,*args): return a,args#返回(a,(args)),args以子元组的方式返回 print(fun3(1,2,3,4)) --->(1, (2, 3, 4))
def fun3(a,*args): return a,*args#返回值为*args时,会少一层元组,称之为解包 print(fun3(1,2,3,4)) --->(1, 2, 3, 4)
允许用户输入任意个参数,用户传的参数必须是x=y的格式,返回值是字典类型
def fun9(**kwargs): return kwargs print(fun9(name='小鹏',age=18)) --->{'name': '小鹏', 'age': 20}#返回字典格式