day9-函数-01

day9-函数-01


一、函数基础


1. 什么是函数

  • 函数就是对实现某一特定功能的代码的封装

2. 函数的分类

  • 系统函数:系统自己定义的函数(不需要程序去实现的函数),程序员直接可以使用
  • 自定义函数:程序员自己实现的函数

3. 声明函数

  • 1)语法

    • def 函数名(参数列表):

      ​ 函数体

  • 2)说明

    • def:声明函数的关键字

      函数名:和变量名一样,是标识符,不能是关键字(要求);

      ​ PEP8命名规范(所有字母小写,多个单词用下划线隔开);

      ​ 见名知义(根据名字能够大概知道函数的功能);

      (), : - 固定写法

      参数列表:这儿的参数又叫形参,以'变量名1,变量名2,...'形式出现;形参可以没有,也可以有多个;作用:通过形参可以将函数外面的数据传递到函数里面

      函数体:实现函数功能的一条或多条语句

  • 3)初学声明函数的过程

    • a.确定函数功能

      b.根据功能去确定函数名

      c.确定形参:看实现函数的功能需不需要从外面传数据,需要数据就对应一个参数

      d.实现函数的功能

      e.确定返回值

    • 注意:声明函数的时候不会执行函数体!只有调用函数的时候才会执行函数体


4. 函数的调用 - 同一个函数可以调用多次

  • 调用函数就是使用函数

  • 1)语法

    • 函数名(实参列表)
  • 2)说明

    • 函数名:必须是已经声明过的函数的函数名

      ():固定写法

      实参列表:实参是给形参赋值的;实参是具体的值,如:数据、已赋值变量

  • 3)函数的调用过程

    • 第一步:回到函数声明的位置

      第二步:传参-用实参给形参赋值

      第三步:执行函数体

      第四步:返回值

      第五步:执行完函数体,回到函数调用的位置接着往后执行


二、函数的参数


1. 位置参数和关键字参数 - 针对实参

  • 1)位置参数:调用参数的时候,让实参和形参的位置一一对应
  • 2)关键字参数:调用函数的时候,以'形参=实参'的形式传参;位置可以乱
    • 注意:不管使用哪种方式传参要保证每个参数都有值
    • 如果既有位置参数,又有关键字参数,位置参数必须在关键字参数前面

2. 参数默认值(形参)

  • 声明函数的时候可以给参数设置默认值,以'形参=值'的方式来设置
  • 设置了默认值的参数,在调用函数的时候可以不用传参
  • 有默认值的参数必须放在没有默认值参数的后面

3. 参数类型说明

  • 1)赋默认值
  • 2)以'形参:类型名'的方式说明类型
    • 对参数类型进行说明可以引导函数调用者正确的传参
    • 也可以让实现函数体的时候有代码提示

4. 不定长参数

  • 1)声明函数的时候,在参数前面加*,那么这个参数就会变成不定长参数

    • 不定长参数实质是一个元组,接收到的实参就是元组中的元素
    • 带一个*的不定长参数,调用的时候需要使用位置参数
  • 2)声明函数的时候,在参数前面加**,那么这个参数也会变成不定长参数

    • 带**的不定长参数实质是一个字典,调用的时候必须使用关键字参数
  • 注意:参数中带*的参数需要放在不带*参数的后面

  • 带一个*的需要放在放在带**的前面

    • def func(*args, **kwargs):

      ​ pass


你可能感兴趣的:(day9-函数-01)