1. 程序的组成
程序 (program):(1)由一系列定义计算机如何执行计算的指令组成。(本质)
(2)程序(算法)由对象、表达式和语句组成。(元素)
1.1程序的指令类型
- 输入 (input): 从键盘、文件、网络或者其他设备获取数据。
- 输出 (output): 在屏幕上显示数据,将数据保存至文件,通过网络传送数据,等等。
- 数学 (math): 执行基本的数学运算,如加法和乘法。
- 有条件执行 (conditional execution): 检查符合某个条件后,执行相应的代码。
- 重复 (repetition): 检查符合某个条件后,执行相应的代码。
1.2对象、表达式、语句
- 对象 (object): 变量可以引用的东西。数字、数据结构、函数、类等
- 表达式 (expression): 变量、运算符和值的组合,代表一个单一的结果。
- 语句 (statement): 代表一个命令或行为的一段代码。赋值、输入、输出、打印、选择/条件(if、else)、迭代/遍历/循环(for、while)
1.3 数据结构
- 数据结构 (data structure): 一个由关联值组成的数据集合,通常组织成列表(序列)、元组、字典(映射)等。
2. 程序的结构
顺序结构、条件结构、循环结构。
2.1 顺序结构
简单的指令,依次执行程序语句,每条语句只执行一次。无条件判断和循环重复语句。如赋值、打印等语句。
import math r=float(input('输入圆的半径:')) print('圆的面积是:{s: .4f}'.format(s=math.pi*pow(r,2)))
2.2 判断/选择(条件)结构
检测条件,并相应地改变程序行为。
score = float(input('输入分数(0至100之间):) if score>80: print('成绩优秀') elif 70<score<80: print('成绩良好') elif 70<score<80: print('成绩及格') else: print('不及格')
2.3 判断/选择(判断)结构
重复执行的代码结构。
#1加到100 sum = 0 for x in range(1, 101): sum = sum + x print(sum) #1加到100 count = 0 result=0 while count<101: result=result+count count+=1 print(result) # 100以内偶数和 x=100 lis = [] result = 0 while x: x=x-1 if x%2 != 0: continue lis.append(x) for i in lis: result +=i #'+','='之间不能有空格 print(result)
3. 算法与程序
算法 (algorithm):算法是逐步解决一类问题或完成一项任务的方法。又或者算法是解决一类问题的通用过程(步骤)。
3.1 算法与程序的区别
- 程序是算法编码的结果,同一算法通过不同的编程语言产生不同的程序。
4. 编程
编程 (programming):设计程序、编写程序的过程。
5. 过程
过程 (procedure):涉及时间始末、次序先后,称之为过程。主体发布动作、主体执行步骤,皆是过程。
6. 结构
结构(Structure): 涉及形状、位置(前后左右)、布局称之为结构。
7. 解释器与编译器
解释器 (interpreter): 读取另一个程序并执行该程序的程序。
编译器(Compiler):将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。
8. 函数
在编程的语境下,函数 (function) 是指一个有命名的、执行某个计算的语句序列 (sequence of statements) 。
8.1 函数与方法
- 方法 (method): 与对象相关联的函数,并使用点标记法 (dot notation) 调用。
8.2 语法
语法 (syntax) : 语言句子的组成规则,在编程中,语法规定了程序的结构规则
8.3 语句
语句(statement): 语法规定的语言句式,在编程中,语句声明(statement)了需要做某件事情(判断、遍历、循环、迭代),实质是一些指令
9.类
类 (class): 一种程序员自定义的类型。
10.模块
模块 (module): 包含了一组相关函数及其他定义的的文件。
11.变量
变量 (variable):变量是指向某个值的名称(符号)。
12. 条件
条件 (condition): 决定哪个分支会被执行的布尔表达式。
12.1 条件语句
- 条件语句 (conditional statement): 一段根据某个条件决定程序执行流程的语句。
13. 迭代(重复)
迭代 (iteration): 利用递归或者循环的方式来重复执行代一组语句的过程。
14. 遍历(重复)(搜索)
遍历 (traversal): 对一个序列的所有元素进行迭代,对每一元素执行类似操作。搜索意思与遍历相近。
14. 1 搜索
搜索 (search): 一种遍历模式,当找到搜索目标时就停止。
15. 循环(重复)
循环 (loop): 程序中能够重复执行的那部分代码。
16. 递归(重复)
递归 (recursion): 调用正在执行的函数本身的过程。
17.序列
序列 (sequence):一个有序的值的集合,每个值通过一个整数索引标识。
18.元素
元素 (item): 序列中的一个值
19.索引
索引 (index): 用来选择序列中元素 (如字符串中的字符) 的一个整数值。在 Python 中,索引从 0 开始。
20. 封装
封装 (encapsulation): 将一个语句序列转换成函数定义的过程。
21. 泛化
泛化 (generalization): 使用某种可以算是比较通用的东西 (像变量和形参),替代某些没必要那么具体的东西 (像一个数字) 的过程。(形参)
22. 接口
接口 (interface): 对如何使用一个函数的描述,包括函数名、参数说明和返回值。
23. 重构
重构 (refactoring): 修改一个正常运行的函数,改善函数接口及其他方面代码质量的过程。
24. 文档字符串
文档字符串 (docstring): 出现在函数定义顶部的一个字符串,用于记录函数的接口。
25. 计算机科学
计算机科学(Computer Science)研究问题是否可计算,算法是否存在(解决问题的学科)。以抽象为工具来表现过程与数据。
25.1 解决问题的基本思路
-
将事物分类,将大问题分解为小单元(树)。
26. 抽象
抽象( abstraction): 呈现界面( interface),隐藏事物不必要的细节。
27.引用
引用(reference): 变量和对象之间的关联称为引用。引用是一个值,指向某些数据。
参考:
《Python基础教程》
《用Python解决数据结构和算法》
《计算机科学导论》
《程序员的数学》
《像科学家一样思考Python》