PYTHON学习笔记七(函数:自定义函数,参数缺省值,不定参函数)

PYTHON学习笔记七

函数
定义
把具有特定功能或经常重复使用的代码编写进独立的小单元并赋予函数一个名称,当程序需要时可以调用该函数并执行
优点
可将打程序分隔后由多人开发,这将有利于团队分工,缩短开发周期
可缩短代码长度,代码可重复使用
程序可读性高,易于排错和维护
自定义函数
创建自定义函数的语法为:
def 函数名称([参数1,参数2,…]):
程序块
[return.返回值1,返回值2…]
参数列表(参数1,参数2…)可有可无,是用来接收函数调用时传递进来的数据,如有多个参数,则函数间必须使用逗号分开,主程序中需要有多个变量来接收返回值
例如:创建名为sayhello()的函数,用来显示”欢迎光临”(无返回值)

def sayhello():
	print ("欢迎光临")

再如,创建名为GetArea()的函数,用来参数传递矩形的宽和高,计算矩形面积后返回面积值

def GetArea(width,height):
	area=width*height
	return area

函数创建后并不会执行,必须在主程序中调用该函数才会执行
[变量=]函数名称([参数表])
如果函数有返回值,可以使用变量来存储返回值
例如:

def GetArea(width,height):
	area=width*height
	return area
ret1=GetArea(6,9)#ret1=54

案例:摄氏度转华氏度
输入一个摄氏度值,求对应的华氏度(华氏温度=摄氏温度*1.8+32)
程序代码:

def ctof(c):#定义函数ctof
	f=c*1.8+32#将摄氏温度转换为华氏温度
	return f#返回结果
inputc=float(input("请输入摄氏温度:"))
print (华氏温度为:%5.1f度"%ctof(inputc))#将数值带入函数中,计算结果

如果参数的数量较多,常会弄错参数顺序从而导致错误结果,调用函数时可以输入参数名字
例如:

def GetArea(width,height):
	return width*height
ret1=GetArea(6,9)#ret1=54
ret2=GetArea(width=6,height=9)#ret2=54
ret3=GetArea(height=4,width=6)#ret3=54

参数缺省值
创建函数时可以为参数设定缺省值,那么在调用函数时,如果没有传入该参数,就会使用该缺省值
例如:

def GetArea(width,height=12):
	return widh*height
ret1=GetArea(6) #ret1=72(6*12)
ret1=GetArea(6,9)#ret1=54(6*9)

设定缺省值的参数必须位于参数表的最后,否则在执行时会产生错误
例如:

def GetArea(width,height=12):#正确
def GetArea*widht=12,height):#错误

不定参函数
参数的个数如果固定,有时会遇到一些麻烦,如在加法函数中,一般是2个数值相加:

def add(n1,n2):
	return n1+n2

但此函数无法用于3个数值相加,当然,我们可以再创建一个传入3个参数的函数,那么4个,5个数值相加呢?PYTHON创建函数时可以让函数不预先设定参数个数,方法是在参数名称前加星号,语法为:

def 函数名称(*参数):
	....

例如创建不定参函数funcl:

def funcl(*args):
	....

python通过元祖的方法把所有参数存与args元祖中,开发者通过操作元祖即可返回所有参数
案例:多数值加法器
创建不定参函数,此函数可以计算2个,3个,4个,.,…数值的合

def calsum(*params):
	total=0
	for param in params:
		total+=param
	return total
print ("不定参函数示例:")
print ("2个参数:4+5=%d"%calsum(4,5))#9
print ("3个参数:4+5+12=%d"%calsumn(4,5,12))#21
print ("4个参数:4+5+12+8=%d"%calsumn(4,5,12,8))#29

你可能感兴趣的:(PYTHON,python)