函数定义
一段封装的代码,在用到它时进行调用
一个最简单的函数
def fun1():#定义一个函数
print('hello')#函数内容
fun1()#调用函数,执行函数内的代码
--->'hello'
函数也可以返回一个值
def fun2():#定义函数
return 'hello'#返回值
print(fun2())#把返回值打印出来
--->'hello'
return
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#所有参数都用完整写法
可变长度参数 *args
允许用户输入任意数量的参数
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)
关键字参数 **args
允许用户输入任意个参数,用户传的参数必须是x=y的格式,返回值是字典类型
def fun9(**kwargs):
return kwargs
print(fun9(name='小鹏',age=18))
--->{'name': '小鹏', 'age': 20}#返回字典格式