目录

  • 1 程序设计基本方法
    • 1.1 程序设计语言
    • 1.2 Python语言开发环境配置
    • 1.3 实验教学 python环境配置
    • 1.4 第1章PPT
  • 2 Python程序实例解析
    • 2.1 Python程序语法元素分析
    • 2.2 Python蟒蛇绘制
    • 2.3 实验教学 python蟒蛇程序
    • 2.4 第2章PPT
  • 3 基本数据类型
    • 3.1 数字类型及操作
    • 3.2 字符类型及操作
    • 3.3 实验教学 天天向上的力量
    • 3.4 第3章PPT
  • 4 程序的控制结构
    • 4.1 分支结构
    • 4.2 循环结构
    • 4.3 实验教学 身体质量指数
    • 4.4 第4章PPT
  • 5 函数和代码复用
    • 5.1 函数及应用
    • 5.2 递归及应用
    • 5.3 实验教学 七段数码管
    • 5.4 第5章PPT
  • 6 组合数据类型
    • 6.1 序列类型及应用
    • 6.2 字典类型及应用
    • 6.3 实验教学 基本统计及词频统计
    • 6.4 第6章PPT
  • 7 文件和数据格式化
    • 7.1 文件的使用
    • 7.2 图像的处理
    • 7.3 实验教学 图像处理
    • 7.4 第7章PPT
  • 8 程序设计方法论
    • 8.1 计算思维
    • 8.2 计算生态
    • 8.3 实验教学 第三方库的安装
    • 8.4 第8章PPT
递归及应用

代码复用和模块化

代码复用:把代码当成资源进行抽象

代码资源化:程序代码是一种用来表达计算的"资源"

代码抽象化:使用函数等方法对代码赋予更高级别的定义

代码复用:同一份代码在需要时可以被重复使用

函数对象是代码复用的两种主要形式:

函数:将代码命名在代码层面建立了初步抽象

对象:属性和方法

<a>.<b>     <a>.<b>()

在函数之上再次组织进行抽象

分而治之的模块化思维:紧耦合松耦合

紧耦合:两个部分之间交流很多,无法独立存在

松耦合:两个部分之间交流较少,可以独立存在

模块内部紧耦合、模块之间松耦合

 函数的递归

在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。

递归函数特性:

必须有一个明确的结束条件;

每次进入更深一层递归时,问题规模相比上次递归都应有所减少;

相邻两次重复之间有紧密的联系,前一次要为后一次做准备(通常前一次的输出就作为后一次的输入);

递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)。

举例:计算1100之间相加之和及n