9. 程序设计语言 笔记
1 程序设计语言分类
- 机器语言
- 特点:直接、高效但可读性差,可移植性差
- 应用:计算机直接识别执行,无需翻译
- 例子:使用二进制指令,如 0000 1000 0001 00000 表示从内存取数等操作
- 汇编语言(符号语言)
- 特点:使用助记符号代替二进制,一定程度提高了可读性
- 汇编:使用汇编器将汇编语言程序转换为机器语言的过程
- 例子:程序实现两个整数相加,如 LOAD X 表示从内存单元 X 中取数并置于寄存器中
- 高级语言
- 特点:可读性好,通用性强,独立于特定硬件
- 编译:通过编译器或解释器转换为机器语言或字节码的过程
- 例子与应用领域
- FORTRAN:主要用于科学计算
- COBOL:主要用于商业领域
- C/C++、Python、Java:适应不同应用领域
- 例子:sum = x + y
- 发展历程
- 从机器语言到汇编语言,再到高级语言
- 不同阶段语言的发展适应了计算机技术的进步和应用需求的多样化
- 总结
- 程序设计语言的发展反映了人们对计算机程序可读性、可移植性、以及开发效率需求的提高
- 高级语言的出现极大地促进了软件开发的普及和效率,适应了不同应用领域的需要
2 程序设计过程
- 编程基本步骤
- 编辑源程序
- 使用高级语言
- 文本文件形式,方便阅读和修改
- 翻译源程序
- 目的:转换为机器语言表示的可执行程序
- 方法:解释方式和编译方式
- 编辑源程序
- 解释方式
- 流程
- 编辑源代码,形成源程序文件
- 解释器逐条解释并执行语句
- 特点
- 速度慢,便于观察调试
- 流程
- 编译方式
- 流程
- 编辑源代码,生成源程序文件
- 编译程序将源程序转换为二进制代码
- 生成的目标程序可直接执行
- 特点
- 一次性完成翻译
- 执行速度快,无需源代码和编辑器
- 扩展功能
- 高级语言具有不同的扩展功能(如 C++ 为CPP,C 语言为 .c)
- 流程
- 翻译工具
- 解释器:针对解释方式
- 编译器:针对编译方式
- 连接器:用于连接编译得到的目标程序和系统库文件
- 两种方式主要区别
- 编译方式
- 直接执行目标程序,速度快,不需源代码和编辑器
- 解释方式
- 需要源代码和解释器,可跨操作系统执行,可移植性好
- 编译方式
3 程序设计方法
- 结构化程序设计
- 定义: 按照层次化、模块化的方法设计程序,提高可读性和可维护性
- 主要思想
- 程序模块化: 将复杂程序分解成独立功能的模块
- 语句结构化: 使用顺序结构、选择(分支)结构、循环结构
- 自顶向下、逐步求精的设计过程: 将复杂问题分解为简单问题,逐步细化
- 限制转向语句: 比如 goto 语句,应避免滥用,保持程序流程规律
- 优点
- 易于理解和维护。
- 提高编程效率,降低开发成本。
- 支持语言
- 结构化语言: Python、C 语言等。
- 面向对象程序设计
- 定义: 侧重于通过建立对象及对象间联系来完成计算任务
- 基本概念
- 对象: 由属性和方法构成
- 消息: 通过向对象发送消息来触发动作
- 类: 具有相同属性和方法的对象的抽象
- 封装: 隐藏实现细节,提供简单接口
- 继承: 用于描述类之间的共同性质,实现代码重用
- 多态: 相同操作作用于不同对象产生不同结果
- 优点
- 具有良好的可读性和可维护性。
- 实现代码重用,提高编程效率。
- 支持语言
- 面向对象语言: Java、C++,Python 等
4 程序设计语言基本要素
- 数据类型(以 Python 为例)
- 基本数据类型
- 数字类型
- 整数类型
- 分数类型
- 浮点数类型
- 字符串类型
- 单引号、双引号表示
- 包括单行或多行字符串
- 数字类型
- 构造数据类型
- 是用户定义数据类型
- 由基本数据元素组合而成
- 基本数据类型
- 数据处理
- 常量和变量
- 常量:程序执行期间不变的量
- 变量:存储信息的部分,有名字(变量名)
- 表达式
- 组成:常量、变量、函数、运算符、括号
- 功能:通过特定运算算法表达计算式
- 运算符
- 数值运算符
- 加法、减法、乘法、除法
- 计算类型为最宽的类型,数据类型转换关系:整数->浮点数->复数
- 字符串操作
- 连接、索引、切片
- 关系运算符(比较运算符)
- 比较两个操作数:相等、不等、小于、大于等
- 逻辑运算符
- 非(not)运算、与(and)、或(or),优先级由高到低,结果为逻辑值
- 数值运算符
- 常量和变量
- 输入输出
- 数据输入
- 使用 input 函数,获取用户输入。输入默认为字符串类型,需转换为所需数据类型
- 使用 eval 函数,以 python 表达式的方式解析并执行字符串,例如 eval(“1+2”)
- 数据输出
- 使用 print 函数,输出字符信息或变量值
- 使用 format 函数,格式化输出,支持占位符
- 数据输入
- 流程控制语句
- 选择结构
- Python 中提供单分支、二分支和多分支语句
- if、else、elif 关键字用于条件判断
- 根据条件选择执行路径
- 循环结构
- 包括确定次数的循环和非确定次数的循环
- 确定次数的循环
- 使用 for 语句,遍历字符串、列表等
- 非确定次数的循环
- 使用 while 语句,条件为真时重复执行
- 选择结构
- 函数
- 功能
- 任务划分,使复杂任务分解为小任务
- 代码重用,避免重复编写相似代码
- 分类
- 内置函数与标准库函数
- 用户自定义函数
- 定义与调用
- 函数定义:“def 函数名(参数列表): 函数体”
- 返回值:使用 return 语句返回计算结果
- 功能
- 注释
- 目的
- 提高程序可读性,方便后续修改和维护
- 表示方法
- 单行注释:以 # 开头
- 多行注释:使用三引号(‘’’ 或 “”")包裹,用于较长的说明
- 没有严格意义上的文档注释
- 目的
- 示例程序
- 根据用户输入的百分成绩输出成绩等级
- 判断条件:成绩大于等于 90、80、70 等
- 根据成绩范围输出等级(A, B, C 等)
- 统计用户输入的正数个数
- 使用 “while” 循环,当输入大于0时计数加1
- 输入非正数时退出循环
- 根据用户输入的百分成绩输出成绩等级
- 总结
- 掌握流程控制语句、函数和注释是编程的基础
- 理解和运用这些基本要素可以有效提高编程效率和代码质量
5 Python 简介及编程环境配置
- Python简介
- 发布时间
- 第一个公开发行版本:1991 年
- 特性
- 面向对象
- 解释型语言
- 自由软件
- 开源代码
- 发布时间
- 版本信息
- 2.0 系列:已过时
- 3.0 及以后:推荐下载,完全面向对象,代码无法向下兼容
- 安装与配置
- 下载
- 根据操作系统选择版本
- 在官网下载后进行安装
- 下载
- 程序运行方式
- 交互式
- 解释器即时响应用户输入代码
- 通过命令行工具或 IDLE 启动
- 文件式(批量式)
- 用户将程序写在文件中
- 执行文件中的代码
- 可通过文本编辑器或 IDLE 编写和执行
- 交互式
- 执行程序的方法
- 命令模式
- 在命令行工具输入代码
- 图形化环境
- 使用 IDLE 启动,输入语句并执行
- 文件执行
- 保存为 .py 文件后在命令行执行
- 启动 IDLE 进行编写并执行
- 命令模式
- 结论
- 本节简单介绍了 Python 语言及其编程环境的配置和程序执行方式
6 程序设计应用举例
- 最大公约数的求解
- 算法实现:使用循环语句实现辗转相除法
- 阶乘的计算
- 方法一:循环语句
- 描述:通过循环累乘 1 到 N 实现
- 方法二:递归
- 描述:N 的阶乘 = N*(N-1的阶乘),底案N=0时,阶乘为 1
- 实现:定义递归函数实现阶乘计算
- 方法一:循环语句
- 计算阶乘和
- 描述:求 1 到 N 各数阶乘的和
- 实现:使用循环语句累加各数阶乘
- 汉诺塔问题
- 描述:将 N 个不同大小的盘片从 A 柱子移动到 C 柱子,每次只能移动一个盘片,且大盘片不能放在小盘片上面
- 解法:使用递归函数实现