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)了需要做某件事情(判断、遍历、循环、迭代),实质是一些指令

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.引用

引用是一个值,指向某些数据。

参考:

   《Python基础教程》

   《用Python解决数据结构和算法》

   《计算机科学导论》

   《程序员的数学》

   《像科学家一样思考Python》

 

作者:南宫恨


正是江南好风景,落花时节又逢君