python notice6 函数

一、什么是函数

  函数:对代码块和功能的封装和定义。需要时可以直接调用。

二、函数的定义及调用

1.定义:

  def  函数名(形参):  #函数名的命名规则和变量基本一样。

    函数体     #函数被执行时所需要执行的代码。

2.调用:

  函数名(实参)  #调用

三、函数的返回值

  当函数执行结束后,可以用return来返回结果。

1.遇到return后,此函数结束,函数后面将不会被执行。

2.return返回值:

  如果不写return或者return后面不写返回值,默认返回None。

  如果return后面写一个返回值,调用者可以接收到一个结果。

  如果return后面写多个返回值,每个值用“,”隔开。调用者可以接收到一个tuple(元组),可以解构成多个变量。

四、函数的参数

1.形参:在函数声明时写的变量叫形参。

2.实参:在函数调用时写的变量叫实参。

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

4.实参分类:

  1.位置参数。在传参过程中,系统会默认按照位置把实参赋值到形参。

  2.关键字参数。在传参过程中,要记住形参的名字(关键字),直接给关键字赋值。

  3.混合参数,两者一起使用。  注:位置参数必须在关键字参数前面。

5.形参分类:

  1.位置参数。按照位置进行赋值。

  2.默认值参数。在函数声明时,给出函数参数的默认值。在调用的时候可以给出具体的值;也可以不给值,使用默认值。  注:必须先声明位置参数,才能声明默认值参数。

    eg:def stu_info(名字,年龄,性别=“男”)  #默认性别:男

  3.动态参数。  

    动态参数分成两种:动态接收位置参数;动态接收关键字参数。

    动态接收位置参数:在参数位置前写*表示接收任意个位置参数。

      eg:def 函数名(*形参)  #可以接收任意内容。  注:多个参数传递进去,收到的内容是元组tuple。

    动态接收关键字参数:在参数位置前写**表示接收任意个关键字参数。

      eg:def 函数名(**形参)  #可以接收任意内容。  注:多个参数传递进去,收到的内容是字典dict。

  注:在混合使用时,各个参数的顺序

    位置参数 > *args >默认值参数 > **kwargs

补充:动态传参的另一种传参方式。

  eg:def func(*args):

      print(args)

    lst = [1,4,7]

    func(*lst)  #可以使用*把一个列表按顺序打散。

    s = "臣妾做不到"

    func(*s)  #字符串打散。

    dic = {"a":1,"b":2,"c":3}

    func(**dic)  #字典打散

    注:可迭代对象都可以按顺序进行打散。在形参位置上的*表示把接收到的参数组合成一个元组;在形参位置上的**表示把接收到的参数组合成一个字典。

  注:函数调用时,实参和形参的个数要一致,否则会报错。

  注:每个形参/实参之间用“,”隔开。

原文地址:https://www.cnblogs.com/xiaolu-fan/p/11224826.html