理解Expression和Statement的异同

Last Updated: 2023-12-10 06:52:02 Sunday

-- TOC --

在阅读软件技术资料时,常常会遇到Expression和Statement这两个词,英文意思都懂,但却不是很理解他两在软件技术资料中的含义。Expression和Statement到底是指什么?有什么相同和不同的细节?

Expression,表达式

expression是指可以得到(evaluate)一个value的代码片段,中文可以翻译为表达式。

expression可以包含变量,操作符,函数调用,以及字符或字符串。比如:

>>> 1+2*3
7
>>> 1>2
False
>>> 'cs.pynote.net'
'cs.pynote.net'

以上是三个表达式,通过evaluate这三个表达式,可以分别得到int,bool和str类型的对象。

Statement,语句

statement是指能够实现某个功能的代码片段,通常不会yield value,中文可以翻译为语句。statement包含了expression,并且常常使用编程语言提供的各种控制语句。比如:

>>> import os
>>> a = 1+2*3
>>> if 1<2: print('1<2')

以上三行代码,都是statement。

Expression可以是Statement

比如函数调用时,我们常常忽略返回值,此时这一行代码,既是expression,也是statement。

总结异同

Expression Statement
Expression evaluates to a value. expression产生一个值。 Statement performs actions. statement执行动作。
An expression can be made of several expressions. expression可以包含expression。 A statement cannot be made of another statement. statement不能包含其它statement(statement包含expression,但statement之间是嵌套关系)。
Results from the evaluation can be printed. expression产生的值可以显示。 Results from the evaluation cannot be printed. statement一般不产生值,因此也没有值可显示。
Expressions usually have a type. expression能产生值,值就有类型。 In most programming language, statements are of the type void. statement不产生值,没有类型,或void类型。
Expressions are mostly defined by programmers. expression由程序员定义编写。 Most statements are already predefined in the programming language. statement由编程语言设计。
Evaluated based on the rules of order of operators. expression的执行要考虑操作符的先后顺序。 Evaluated based on order/sequence. statement的执行就是书写的先后顺序,或语句表达的逻辑顺序,比如if或loop。

有些软件技术资料的翻译,让人不敢恭维,建议尽量多看英文原文...:)

本文链接:https://cs.pynote.net/sf/202311231/

-- EOF --

-- MORE --