表达式
编程语言比人类语言简单得多。然而,学习任何语言都需要掌握一些语法规则,我们也将从这里开始。本教材使用 Python 编程语言。学习语法规则至关重要,最基础程序所使用的规则同样也是更复杂程序的核心。
程序由表达式构成,表达式告诉计算机如何组合数据片段。例如,乘法表达式由两个数值表达式之间的 * 符号组成。像 3 * 4 这样的表达式会被计算机求值。每个单元格中最后一个表达式的值(求值的结果),此处为 12,会显示在单元格下方。
[In ]:
3 * 4
12编程语言的语法规则是严格的。在 Python 中,* 符号不能连续出现两次。计算机不会尝试解释与其规定的表达式结构不符的表达式,而是会显示 SyntaxError 错误。语言的语法是其语法规则的集合,而 SyntaxError 表示表达式结构不符合该语言的任何规则。
[In ]:
3 * * 4
SyntaxError: invalid syntax (<ipython-input-2-012ea60b41dd>, line 1)
[0;36m File [0;32m"<ipython-input-2-012ea60b41dd>"[0;36m, line [0;32m1[0m
[0;31m 3 * * 4[0m
[0m ^[0m
[0;31mSyntaxError[0m[0;31m:[0m 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本章介绍多种类型的表达式。学习编程需要将所学的一切结合起来尝试,探究计算机的行为。如果除以零会怎样?如果连续除两次会怎样?你并不总是需要请教专家(或上网搜索);许多细节都可以通过自己尝试来发现。