一、什么是函数
当我们在写代码时需要多次使用某段代码时,为避免代码重复,可将该段代码封装起来,哪里需要就在哪里调用这段代码,这段封装起来的代码就是函数。
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
二、函数的定义与调用
def make(): print("python全栈脱产20期") print("加油") make()
这里第一行是声明函数名,第二、三两行就是封装起来的代码,最后的“make()”就是调用函数。在函数体里不能调用本函数
三、函数的返回值
写法:在函数体的最后加入‘return + 想要的返回值’。
li = [1,2,3,4,56] def func(a): l1 = [] for i in range(len(a) - 1, -1, -1): l1.append(a[i]) return l1 print(func(li))
这段代码的功能为将列表里的元素顺序反转,这里的返回值为列表。
就本段代码进行举例
- 当没有写“return l1”时,“print(func(li))”打印出来的值为None
- 当只写“return”时,“print(func(li))”打印出来的值也为None
- 当写“return l1”时,“print(func(li))”打印出来的值为列表l1
return还有一个作用就是结束函数体,即,当程序执行到return时不管下面还有多少代码,都不会执行(类似于while循环里的break)
函数可以返回一个值或者多个值。返回一个值时,数据类型为该值的本身类型;返回多个值时,数据类型为元组。
总结:函数返回值的作用:
- 将指定值返回给调用者
- 结束函数
四、函数的参数
当函数体里某个或某几个值是动态变化时,为了函数具有一定程度的通用性,我们就需要引进参数这个概念。参数分实参和形参两种,形参是在声明函数名时括号里的内容;实参是在调用函数时括号内的内容。将实参传递给形参的过程就叫传参。
def make(char,addr,sex): # 形参 char = '探探' print('掏出手机') print('打开%s'%char) print('找一个%s,%s'%(addr,sex)) print('聊一聊') make('探探','北京','萝莉') # 实参 # 将实参传递给形参的过程 传参
上面代码的char,addr,sex均为形参,没有实际的值,需要在调用时给定,先给个参数名占位。
而代码里的'探探','北京','萝莉'均为实参,需要一一对应代入函数体参与运算的值。
形参分为位置参数与默认参数,位置参数是没有实际的值,需要在调用时给定,先给个参数名占位;而默认参数在声明函数名的时候就赋好值了,用于参与函数体的运算,当然,既然说默认就可以自定义,我们可以在调用的时候更改。当声明变量的时候括号里既有位置参数也有默认参数时,我们叫它混合形参。
同样的,实参的也分两种位置实参和关键字。位置实参就是要赋给函数体的参与运算对应的值,关键字则对应于默认参数,当我们想更改默认参数时使用。
不管在声明函数时还是在调用函数时,位置参数优先级高于默认参数/关键字。
五、三元运算
当我们需要用if判断语句来赋值时,若只有两种结果(if…else…),我们可以采用三元运算的写法来简化代码。举例:
if a > b: c = a else: c = b
上面这段代码可以使用三元运算简化为 “ c = a if a > b else b ”