一、什么是函数

  当我们在写代码时需要多次使用某段代码时,为避免代码重复,可将该段代码封装起来,哪里需要就在哪里调用这段代码,这段封装起来的代码就是函数。

  函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

二、函数的定义与调用

  

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))

  这段代码的功能为将列表里的元素顺序反转,这里的返回值为列表。

就本段代码进行举例

  1. 当没有写“return l1”时,“print(func(li))”打印出来的值为None
  2. 当只写“return”时,“print(func(li))”打印出来的值也为None
  3. 当写“return l1”时,“print(func(li))”打印出来的值为列表l1

  return还有一个作用就是结束函数体,即,当程序执行到return时不管下面还有多少代码,都不会执行(类似于while循环里的break)

  函数可以返回一个值或者多个值。返回一个值时,数据类型为该值的本身类型;返回多个值时,数据类型为元组。

  总结:函数返回值的作用:

  1. 将指定值返回给调用者
  2. 结束函数

四、函数的参数

  当函数体里某个或某几个值是动态变化时,为了函数具有一定程度的通用性,我们就需要引进参数这个概念。参数分实参和形参两种,形参是在声明函数名时括号里的内容;实参是在调用函数时括号内的内容。将实参传递给形参的过程就叫传参。

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 ”