函数
一、函数
1、函数
函数定义:
def 函数名():
代码块
函数调用:
函数名+()
#带参数的函数
#函数定义
def printInfo1(name, height,weight,hobby):
print('%s的体重是%f' % (name,weight))
print('%s的身高是%f' % (name,height))
print('%s的爱好是%s' % (name,hobby))
#函数调用
printInfo1('李四',178,123,'唱歌')
2、参数
参数可分为必选参数、默认参数(缺省参数,带有默认值的参数)、可选参数和关键字参数
①必选参数
def sum(a,b):
sum=a+b
print(sum)
②缺省参数
def sum1(a=1,b=2):
print(a+b)
sum1()#调用时如果赋值,则会依次覆盖默认值,若没有赋值,则为默认值
③可变参数 *args
当参数不确定数量的时候可以用 *args来表示可变参数。接受的数据是一个元组类型。
def getComputer(*args):
'''
args: 可变长的参数类型
'''
print(args)
getComputer(1,2,3,4,5) #(1, 2, 3, 4, 5)
getComputer((1,2,3,)) #((1, 2, 3),)
getComputer(1) #(1,)
④关键字可变参数 **kwargs
用 **kwargs定义,参数关键字是一个字典类型,其中的key必须是字符串。接收的数据是一个字典类型。
def keyFunc(**kwargs):
print(kwargs)
dict1={'name':'Leo','age':'18'}
keyFunc(**dict1) #{'name': 'Leo', 'age': '18'}
keyFunc(name='peter',age=34) #{'name': 'peter', 'age': 34}
keyFunc() #{}
当关键字可变参数和可变参数都存在时,可变参数必须放在关键字可变参数之前
def text(**kwargs,*args): #错误
def text(*args,**kwargs): #正确
引用,id()
三元运算
if a:
b
else:
c
等效于
b if a else c
3、匿名函数
lambda 参数1,参数2,参数3:表达式
匿名函数冒号后面的表达式只有一个,是表达式,不是语句。函数自带return,返回值是计算后的结果。
num=lambda x,y:x+y
print(num(2,6)) #8
4、递归函数
def digui(n):
if n==1:
return 1
else:
return n*digui(n-1)```