函数
基础
什么是函数:把具有独立功能的代码块组织为一个小模块->一系列python语句的组合,可运行一次或多次,具有独立功能
为什么使用:代码的复用最大化,最小化冗余代码,整体代码结构清晰,问题局部化
定义(封装)函数
def 函数名(参数列表):
代码块(一系列python语句)
调用
执行函数定义里的代码块,调用前一定要先定义
def printinfo():
print('小张身高是%f' % 1.73)
print('小张体重是%f' % 160)
print('小张爱好是%s' % '唱歌')
print('小张专业是%s' % '计算机')
printinfo()
说明文档
三个单引号,回车
鼠标放在函数上有提示
def printinfo():
'''
这个函数是用来打印个人信息的
:return:
'''
print('小张身高是%f' % 1.73)
print('小张体重是%f' % 160)
print('小张爱好是%s' % '唱歌')
print('小张专业是%s' % '计算机')
printinfo()
参数
传入参数不同,函数结果不同
def printinfo(name,height,weight,hobby,pro):
print('%s身高是%f' % (name,height))
print('%s体重是%f' % (name,weight))
print('%s爱好是%s' % (name,hobby))
print('%s专业是%s' % (name,pro))
printinfo('小张',160,180,'弹琴','计算机')
定义
函数为了实现某项特定的功能,进而为了得到实现功能所需要的数据(得到外部数据)
参数分类
-
必选参数
def sum(a,b):#形式参数:形参,只是意义上的一种参数,定义时不占内存地址,占坑的 sum=a+b print(sum) sum(1,2)#实际参数:实参,实实在在参数,实际占用内存地址 sum()#错误,必须填参数
-
缺省参数(默认参数)
始终位于参数列表尾部
def sum(a,b=30): sum=a+b print(sum) sum(1,2)#可以改变值 sum(1)#也可只改变一个值 sum()#没赋值,就用默认的值
-
可选参数(不定长参数)
参数的个数不确定时使用,比较灵活
接受:元组类型
def getcomputer(*args): result=0 for item in args: result+=item print(result) getcomputer(1,2,3,4,5,6) getcomputer(1,2)
args:一个参数名而已 这个原本是自定义的 不过大家都这么写 而且又是程序的入口 所以后来大家统一都这么写 方便阅读
-
关键字参数
在函数体内,参数关键字是一个字典类型,key是一个字符串
接受:字典类型
def keyfunc(**kwargs): print(kwargs) #keyfunc(1,2,3)错误,必须是字典类型 dictA={'name':'leo','age':'35'} #keyfunc(dictA)错误,加** keyfunc(**dictA) keyfunc(name='peter',age=26)#键值对传入
-
混合
def complex(*args,**kwargs): print(args) print(kwargs) complex(1,2,3,4,name='peter')#两个一起给 complex(1,2,3,4)#只给前面 complex(age=36)#只给后面 def complexa(**kwargs,*args)#错误,可选参数必须放在关键字参数之前
返回值
概念:函数执行完毕后会返回一个对象,如果内部有return就可以返回实际值,否则返回None
类型:可以返回任意类型,取决于return后的类型
用途:给调用方返回数据
一个函数体内可以出现多个return值,但只能返回一个return
一旦执行return,函数就执行完毕退出,后面的代码便不再执行
def sum(a,b):
sum=a+b
return sum
c=sum(10,20)
print(c)
def calcomputer(num):
li=[]
result=0
i=1
while i<=num:
result+=i
i+=1
li.append(result)
return li#返回列表类型
print(calcomputer(5))
def returntuple():
return {'name':'jack'}#返回字典
a=returntuple()
print(type(a))
嵌套调用
def fun1():
print('fun1 start')
print('fun1 end')
def fun2():
print('fun2 start')
fun1()
print('fun2 end')
fun2()
函数分类
- 有参数无返回值
- 有参数有返回值
- 无参数有返回值
- 无参数无返回值