表达式

编程语言比人类语言简单得多。然而,学习任何语言都需要掌握一些语法规则,我们也将从这里开始。本教材使用 Python 编程语言。学习语法规则至关重要,最基础程序所使用的规则同样也是更复杂程序的核心。

程序由表达式构成,表达式告诉计算机如何组合数据片段。例如,乘法表达式由两个数值表达式之间的 * 符号组成。像 3 * 4 这样的表达式会被计算机求值。每个单元格中最后一个表达式的值(求值的结果),此处为 12,会显示在单元格下方。

[In ]:
3 * 4
12

编程语言的语法规则是严格的。在 Python 中,* 符号不能连续出现两次。计算机不会尝试解释与其规定的表达式结构不符的表达式,而是会显示 SyntaxError 错误。语言的语法是其语法规则的集合,而 SyntaxError 表示表达式结构不符合该语言的任何规则。

[In ]:
3 * * 4
SyntaxError: invalid syntax (<ipython-input-2-012ea60b41dd>, line 1)
  File "<ipython-input-2-012ea60b41dd>", line 1
    3 * * 4
        ^
SyntaxError: invalid syntax

表达式的微小改动可能完全改变其含义。下面,* 之间的空格被去除了。由于 ** 出现在两个数值表达式之间,该表达式成为一个格式正确的乘幂表达式(第一个数的第二个数次幂:3 乘以 3 乘以 3 乘以 3)。符号 *** 被称为运算符,它们所组合的值被称为操作数

[In ]:
3 ** 4
81

常用运算符。 数据科学经常涉及数值的组合,编程语言中的运算符集合被设计为能够用表达式表达各种算术运算。在 Python 中,以下运算符是必不可少的。

表达式类型 Operator Example Value
加法 + 2 + 3 5
减法 - 2 - 3 -1
乘法 * 2 * 3 6
除法 / 7 / 3 2.66667
求余 % 7 % 3 1
乘幂 ** 2 ** 0.5 1.41421

Python 表达式遵循与代数中相同的优先级规则:乘法和除法优先于加法和减法。可以使用括号将较小的表达式组合成更大的表达式。

[In ]:
1 + 2 * 3 * 4 * 5 / 6 ** 3 + 7 + 8 - 9 + 10
17.555555555555557
[In ]:
1 + 2 * (3 * 4 * 5 / 6) ** 3 + 7 + 8 - 9 + 10
2017.0

本章介绍多种类型的表达式。学习编程需要将所学的一切结合起来尝试,探究计算机的行为。如果除以零会怎样?如果连续除两次会怎样?你并不总是需要请教专家(或上网搜索);许多细节都可以通过自己尝试来发现。