一、函数的定义, 函数名, 函数体以及函数的调⽤

    1、我们使⽤def关键字来定义函数, 函数的定义语法:

         def 函数名():

               函数体

   2、函数的调⽤: 使⽤函数名可以调⽤函数, 写法: 函数名(), 这个时候函数的函数体会被执⾏

二、函数的返回

  执⾏完函数之后. 我们可以使⽤return来返回结果。

  1. 函数中遇到return 此函数结束 不再继续   
  def  func():
     print(‘第一行’)
     return
     print(‘第二行’)

 

       调用func()后,会打印出:第一行,下面的第二行不会打印,应为程序执行时,从上到下,遇到了return,所以会停止,不再执行下面的代码。

 

        2. 给函数的调⽤者⼀个访问结果

 

            现在有两个数字,比较大小后,取出较大的值。这时,要是在函数里面比较的,结果怎么通知调用这个函数的人呢。这个要求,return可以满足,代码证明:

 

def func():
  a = 2
  b = 3
  c = 0
  if a > b:
   c = a
  else:
    c = b 
  return c

 

  

            这样就可以把较大的值返回给调用的人了。

            return 还可以一次性返回多个值,接受者以元组的形式接收。

 

def func():
    return 1, 'a', [1, 2]


print(func())
结果:
(1, 'a', [1, 2])  

   总结一下return的作用:

           1)遇到return. 此函数结束, 函数后⾯的代码将不会再被执⾏

           2return 返回值

        关于返回值:

            如果return后面什么都不写 或者 ⼲脆函数就没有return .那么返回的就是None

           如果return后⾯写了⼀个值. 则调⽤者可以接收到⼀个值

           如果return后⾯写了多个值, 则调⽤者会接收到⼀个tuple, 调⽤者可以直接解构成多个变量

三、 函数的参数

   参数, 函数在调⽤的时候指定具体的⼀个变量的值. 就是参数. 语法:

        def 函数名(参数列表):

              函数体

        上面有个比较大小的函数,现在修改一下,在调用的时候,给两个数,然后比较大小后,再返回比较大的一个。

def funca(a,b):
  c = 0
  if a > b:
    c = a
  else:
     c = b 
   return c

func(3,4)#调用的地方

  

       下面介绍三个名词:

       a) 形参

    写在函数声明位置的变量叫形参.

      b) 实参

    在函数调⽤的时候给函数传递的值. 叫实参, 实际执⾏的时候给函数传递的信息.

     c) 传参

   给函数传递信息的时候将实际参数交给形式参数的过程被称为传参.

     总结:

   比较大小的代码中,调用时,传递的3,4就是实参,函数里接收3,4ab就是形参。

  1. 像上面比较大小的函数中,给传递了3,4两个参数,这种叫做位置参数,就是按照形参的位置一一对应的给值。
  2. 接下来,介绍第二种实参,叫做关键字参数。
def funca(a,b):
  c = 0
  if a > b:
    c = a
  else:
    c = b 
  return c
func(3,b = 4)#调用的地方

  

   这里的b = 4的方式,就是关键字参数,这里要注意一点,关键字参数,要放到后面,如果放在了前面,代码会报红,读者可以尝试一下。还有下面的一种写法:

        func(b = 3,a = 4)#调用的地方  

        这样传参有个好处,不用记住形参每个位置,应该传递的值是什么。只要,把每个参数都按照这样的方式,传递了全部参数,就可以了。

   注意: 在使⽤混合参数的时候, 关键字参数必须在位置参数后⾯

   综上: 在实参的⾓度来看. 分为三种:

                 a. 位置参数

                 b. 关键字参数

                 c. 混合参数, 位置参数必须在关键字参数前⾯

       3.形参的角度考虑也有三种,下面先介绍两种

          还是上面的比较大小的函数:

 

          def funca(a,b):

 

                 .......

   小括号里的a,b也叫做位置参数。

         还有第二种形参,叫做默认值参数。就是在声明函数时,就把值给形参了。这时在调用时,默认值参数,可以不给值也可以,它会自动是引用,已经给定的默认值。

   再修改一下,比较大小的函数,现在要求,随便给定一个数,和8作比较。代码修改后:

 

def funca(a,b=8):#这里的b就是一个默认值参数,和实参的关键字参数一样,默认值参数也要放到最后面,否则代码报红
  c = 0
  if a > b:
    c = a
  else:
    c = b 
return c
func(3)#调用的地方

    综上: 在形参的⾓度来看,

                1. 位置参数

                2. 默认值参数(⼤多数传进来的参数都是⼀样的, ⼀般⽤默认参数)