2. 表达式与语句

计算机,自动化执行机器,执行的是什么呢?执行的是设计者通过设计一系列的内容打算让计算机进行的某种功能(例如:打印)或者计算(例如:比较两数的大小)。

让计算机完成某任务的程序设计者可以通过0、1(低级语言)或者计算机处理器的汇编指令(汇编语言)甚至更接近于人的思维语言(高级语言例如C和Python)来让计算机自动化的完成程序设计者交给计算机的任务。那程序设计者怎样让计算机理解、执行设计者让它干什么呢?首先,计算机只可以基于数据做一些算术和逻辑,这个大家需要了解,程序设计者将自己想让计算机完成的任务基于算术和逻辑运算不断的进行较为复杂的组合设计,从而实现自己的想法让计算机自动化地运行帮助自己做事。

数据通过算术、关系、逻辑运算产生新的数据,又可以作为下一步算术、逻辑运算的参与数据,那么我们称数据和算术、关系、逻辑运算符的这一组合逻辑序列为表达式。

# 算术表达式
>>> 12 + 13
25
>>> 15 - 16
-1
# 逻辑表达式
>>> 15 > 12
True
>>> 12 < 14
False
# 算术和逻辑组合的复杂表示
>>> 4 / 7 > 2
False

表达式可以组合构成更为复杂的表达式,但一个任务不能就只用一个复杂的表达式一步完成,可以将某任务不断的细分、分解成若干个功能单一、清晰的小(原子型)表达式,这样一个大型的任务就可以变成若干个小任务来组合最终完成,每一次计算机执行一个功能单一的表达式,将所有的表达式都执行完毕,大任务也就完成了。那么我们可以称之这细分出来的每个(小)功能单一的表达式为语句,一般情况下语句在程序文件里各自占一行,通常以某标点符号结尾,例如c和python语言都是以分号作为语句的结尾标识符。Python程序的语句末尾的分号可以写也可以不写,通常懒得写。

所以,语句和表达式的关系是表达式构成语句,表达式是语句的组成元素。语句代表一个细小任务或者说细小功能。

2.1 表达式

表达式是用各类运算符连接数据组成的算式。

2.1.1 算法表达式

通过加、减、乘、除运算等符号将数据做相应的数学计算的组合序列是算术表达式,这个很容易理解。

>>> 12 / 4 + 2 * 5
13

算术运算符还有取余(%)、幂方(**)、取负(-)运算符。

>>> 7 % 4
3
>>> 2 ** 3
8
>>> -9
-9
>>> 

2.1.2 关系表达式

表示大小关系的运算符,可以比较数据、表达式间的大小关系。

# 大于
>>> 12 > 13
False
# 不等于
>>> 12 != 13
True
# 等于
>>> 12 == 13
False

2.1.3 逻辑表达式

通过与(and)或(or)非(not)等逻辑运算符可以将表达式组合成较为复杂的表达式。

#Linux的Shell里键入Python回车后或IDLE里交互学习
>>> 2 > 3 and 3 > 4
False
>>> 2 > 3 or 3 > 4
False
>>> not 1
False

2.2 语句

语句是程序的基本元素,表达式和数据是语句的基本组成元素,一般情况下语句作为程序的一个语义单元,实现一定的功能,例如赋值语句实现对变量的赋值,打印语句print实现打印信息功能,if分支语句实现二选一功能选择,而for和wihle循环体语句实现重复操作功能,常见的函数则实现部分代码可重复多次使用的功能,故语句是程序的基本组成单元(元素)。后续章节会对if、while、for和函数进行详细展开,这里仅列出赋值语句。

赋值语句

用赋值符号(=)连接变量和数据或者表达式的语句,实现对赋值符号左侧的变量的数值操作,实际上是让变量指向或者说代表这个数据或者表达式的计算值,需要注意的是赋值符号是=,而常说的等于(==)是关系运算符。

>>> a = 12
>>> print a
12
>>> a == 12
True