一、函数定义:为实现特定功能的一段代码函数,当我们需要去实现某一个功能时,去调用就可以了。可以接收0个或者多个参数,也可以返回0个或者多个值。
1.函数的定义:
(1)函数名:声明必须使用def关键字,函数名命名使用多个小写英文单词组成,不同单词之间使用下划线_来分隔开;
(2)形参列表:定义函数可以接受的参数,可以是一个也可以是多个,多个使用英文逗号分隔开。需要调用的时候,必须传入相对应的形参
def xx(#形参列表): #多条可执行语句 #return 返回值 pass
二、1.对于定义函数的人员来说,需要注意以下几点:
(1)需要动态的传入数据,这些数据被定义参数;
(2)需要返回相应的内容,这些内容被定义为返回值;
(3)函数内部的实现过程。
2.对于return返回的内容,可以是带有值的变量,也可以是返回一个表达式
#定义一个函数用于从两个数当中比较出最大的一个数字 def my_max(x , y): #使用三目运算符比较出两个数当中的最大的一个 z = x if x > y else y return z #可以使用此句来代替上面的内容: return x if x > y else y def my_hello(name): print("---my_hello函数-----") return name + ",Hello! I'm Fine,thanks!" a = 6 b = 9 #c用来接收两个数当中的最大值 c =my_max(a , b) print("最大值是:",c) print(my_hello("Albert"))
三、开发者文档:
1.我么使用多行字符串的方法为函数定义一个开发文档,当我们需要去查看它的时候,可以通过help()函数、.__doc__函数的方式来查看开发文档
#定义一个函数用于从两个数当中比较出最大的一个数字 def my_max(x , y): """ 函数的说明文档,用于比较出两个值当中大的一个数 def my_max(): :return x if x > y else y """ #使用三目运算符比较出两个数当中的最大的一个 z = x if x > y else y return z #可以使用此句来代替上面的内容: return x if x > y else y #通过help函数来查看开发文档 help(my_max) #通过__doc__函数来查看开发文档 print(my_max.__doc__)
四、多个返回值
1.对于多个值的返回,我们可以使用包装成列表;如果不接收,程序将会以元组的方式接收返回的多个值
def sum_and_average(list): """ 多个值的返回 def : 定义一个函数,如果列表里面的是数值就进行求和操作,否则就掠过 求和之后,再求出这个列表里面数值的平均值 """ sum = 0 count = 0 for i in list: if isinstance(i , int) or isinstance(i , float): sum += i count += 1 return sum , sum/count my_list= ['张三' , 12.5 ,32 ,54 ,87 ,23 ,'李四' ,213 ,'王五' ,'大卫' ,231] #使用序列解包的方式,将返回的多个值解包 sum_list,average_list = sum_and_average(my_list) print("列表的和是:",sum_list) print("列表的均值是:",average_list)
五、递归函数
1.如果一个函数内调用他自己本身,我们就称这个为递归函数。如下:
#递归函数,来回调用函数本身 def f(n): """ 定义一个f(n)函数,如果n为0,则返回1;n为1,则返回4 f(n)=2*f(n-1)+f(n-2) :param n: :return: """ if n == 0: return 1 elif n == 1: return 4 else: return 2*f(n-1)+f(n-2) #求出f(10)的结果 print("f(10)的结果是:",f(10))
2.某个时刻函数的返回值是确定的,不在调用本身,一定要向已知的方向去运行
六、关键字参数
1.函数的参数传入并不是无意义的,python允许调用函数的时候使用名字来传入参数的值。有以下几种方式:
(1)通过形参位置来传入参数的值,位置参数;
(2)通过关键字的方式来传入参数的值;
(3)通过关键字和位置参数混合使用的方式来传入参数的值,此时需要注意的是位置参数必须位于关键字参数前面。否则将会报错。
#关键字参数 def student(hai_color, hegiht, weight): """ 输出学生身高、体重、头发颜色的一个函数 :param hai_color: :param hegiht: :param weight: :return: """ print("这个学生的头发颜色是:",hai_color) print("这个学生的身高是:"+str(hegiht)+"cm") print("这个学生的体重是:"+str(weight)+"斤") return hai_color,hegiht,weight #传统的位置函数,与函数的参数一一对应 print("----学生信息函数----") print(student('black' , 166 ,127)) #使用关键字参数 print(student(hegiht=171 , weight= 98, hai_color= 'yellow')) #使用关键字参数和位置参数混合,关键字参数必须位于位置参数后面 print(student('hot' ,weight= 183,hegiht= 168)) #位置参数位于关键字参数之后就会报错 #print(student(weight= 176 ,hai_color='blue' ,198))