函数
函数基础
函数——独立功能的代码块,完成具体独立的功能
函数分类:
- 有参无返回
- 有参有返回
- 无参有返回
- 无参无返回
使用函数的优点:
- 代码复用最大化
- 最小化冗余代码
- 整体代码结构清晰
- 问题局部化
函数定义
def 函数名(参数):
代码
#函数定义
def printInfo():
'''
用来打印个人信息
:return:
'''
print('身高%f' % 1.80)
print('体重%f' % 120)
print('爱好%s' % '唱歌')
print('专业%s' % '软件工程')
pass
函数调用
执行函数定义的代码块
【注】:调用前须先定义
#函数调用
printInfo()
printInfo()
printInfo()
函数参数
参数:函数为了实现某项特定功能,进而为了得到实现功能所需要的数据
分类:
- 必选参数
- 可选参数[可变长参数]——*args 元组类型
- 默认参数[缺省参数]
- 关键字参数—— * *kwargs 字典类型
#必选参数
def sum(a,b): #形式参数:只是意义上的一种参数,定义时不占内存地址
sum=a+b
print(sum)
sum(20,15) #函数调用 20 15 实际参数,占用内存地址
sum() #不能这样写
#默认参数【缺省参数】 始终存在参数列表的尾部
def sum1(a=20,b=30):
print('默认参数的使用%d'%(a+b))
pass
sum1(10) #未赋值,则用缺省值
#可变参数(当参数个数不确定)
def getComputer(*args): #可变长参数
'''
计算累加和
:param args: 可变长类型参数
:return:
'''
#print(args)
result=0
for item in args:
result+=item
pass
print('result=%d'%result)
pass
getComputer(1)
getComputer(1,2)
getComputer(1,2,3)
#关键字参数 字典类型 key是一个字符串
def keyFunc(**kwargs):
print(kwargs)
pass
#调用
dictA={'name':'deer','age':'22'}
keyFunc(**dictA)
keyFunc(name='deer')
#混合
def complexFunc(*args,**kwargs):
print(args)
print(kwargs)
pass
complexFunc(1,2,3,4)
complexFunc(1,2,3,4,name='deer')
complexFunc(name='deer')
def TestMup(**kwargs,*args):#不符合要求
'''
可选参数必须放在关键字参数之前
:param kwargs:
:param args:
:return:
'''
pass
函数返回值
返回值——函数执行完返回的对象,有return则可以返回实际值,否则返回None
类型:可返回任意类型,取决于return后的类型
用途:给调用方返回数据
【注】:
- 在一个函数内可出现多个return值,但只能返回一个return
- 在一个函数体内,执行了return,则函数执行完成并退出
#返回值
def Sum(a,b):
sum=a+b
return sum #返回计算结果
print(Sum(10,30)) #函数返回到调用的地方
#返回list
def calComputer(num):
li=[]
result=0
i=1
while i<=num:
result+=i
i+=1
pass
li.append(result)
return li
print(calComputer(10))
print(type(calComputer(10)))
#返回元组
def returnTuple():
'''
返回元组类型的数据
:return:
'''
return 1,2,3
print(type(returnTuple()))
#返回字典
def returnDict():
'''
返回字典类型的数据
:return:
'''
return {'name':'deer'}
print(type(returnDict()))
函数嵌套
嵌套
#嵌套
def fun1():
print("----------fun1 star--------")
print("----------fun1 end--------")
pass
def fun2():
print("----------fun2 star--------")
fun1()
print("----------fun2 end--------")
pass
fun2()
----------fun2 star--------
----------fun1 star--------
----------fun1 end--------
----------fun2 end--------