五分钟了解Python中的函数

Python (210) 2023-04-20 05:20:48

函数:函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数的定义

定是函数使用def关键字

defmyfunc(x):
ifx>=0:
returnxelse:
return-x

空函数

defemptyfunc():
pass

参数检查

defcheckfunc(x):
ifnotisinstance(x,(int,float)):
raiseTypeError("mustbeintorfloattype!")
ifx>=0:
returnx
else:
return-x

返回多个值

defprice(x):
apple=x*2
banana=x*2.5
returnapple,banana
a,b=price(1)

函数的参数

必选参数parameter

defprintdetail1(name,age,telephone):
print("姓名:",name)
print("年龄:",age)
print("电话:",telephone)
printdetail1("Jack",12,12356435678)

默认参数parameter=value

defprintdetail2(name,age,telephone,gender='fale'):
print("姓名:",name)
print("性别:",gender)
print("年龄:",age)
print("电话:",telephone)
printdetail2("Jack",12,12356435678,gender='female')

可变参数*

1.不定长传参

deffun1(*number):
foriinnumber:
print(i)fun1(1,2,3,4,5,6,7,8)

2.元组和列表的压包

deffun2(*number):
s=0
foriinnumber:
s+=i
print(s)
fun2(*[1,2,3,4,5])
fun2(*(1,2,3,4,5))

关键参数**

使用方法一

deffun(id,name,**kargs):
print("id:",id)
print("name:",name)
print("others:",kargs)
fun(2,"xiaohua",sex="man",age='12')

使用方法二

extra={'sex':'man','age':12}
deffun(id,name,**kargs):
print("id:",id)
print("name:",name)
print("others:",kargs)
fun(2,"xiaohua",sex=extra['sex'],age=extra['age'])

使用方法三

extra={'sex':'man','age':12}
deffun(id,name,**kargs):
print("id:",id)
print("name:",name)
print("others:",kargs)
fun(2,"xiaohua",**extra)

关键字参数*

deffun(name,age,*,city,job,completion):
print("name:",name)
print("age:",age)
print("city:",city)
print("job:",job)
print("completion:",completion)
fun('Jack',12,city='shanghai',job='teacher',completion=True)

命名关键字参数需要一个特殊分隔符*,后面的参数被视为命名关键字参数

如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了

参数组合

deffun(parameter,*args,keyparameter,**kargs):
print(parameter)
print(args)
print(keyparameter)
print(kargs)
fun(1,*(1,2,3,4),keyparameter=True,**{'id':2})

参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数

函数的递归

#阶乘计算
deffact(n):
ifn==1:
return1
returnn*fact(n-1)
THE END

发表回复