1.structure and interpretation of computer programs
Python 内置了对各种常见编程活动的支持, 例如,操作文本、显示图形以及通过 互联网。Python 代码行
>>> from urllib.request import urlopen
是一个 import 语句,用于加载用于访问 互联网。特别是,它提供了一个名为 urlopen 的函数,该函数 可以访问统一资源定位符 (URL) 中的内容,该位置为 互联网上的东西。
assignment 语句
>>> shakespeare = urlopen('http://composingprograms.com/shakespeare.txt')
将名称 Shakespeare 与表达式的值相关联,该表达式 遵循 =。该表达式将 urlopen 函数应用于 URL 包含威廉·莎士比亚 37 部戏剧的完整文本,全部包含在一个 text 文档。
函数 pow 将其第一个参数提高到其第二个参数的幂。
>>> pow(100, 2) 10000 >>> pow(2, 100) 1267650600228229401496703205376
与数学 中缀表示法的约定。首先,函数可以采用任意数量的 参数:
>>> max(1, -2, 3, -4) 3
operator 模块提供对 infix 对应函数的访问 运营商:
>>> from operator import add, sub, mul >>> add(14, 28) 42 >>> sub(100, mul(7, add(8, 4))) 16
import 语句指定一个模块名称(例如,operator 或 math),然后列出该模块的命名属性以导入(例如,sqrt)。导入函数后,可以多次调用该函数。
例如,评估
>>> sub(pow(2, add(1, 10)), pow(2, 5)) 2016
要求此评估过程应用四次。如果我们绘制每个 表达式,我们可以可视化这个 过程。
此图称为表达式树。在计算机科学中,树 传统上是自上而下生长的。树中每个点的对象都是 称为节点;在本例中,它们是与其值配对的表达式。
计算其根(顶部的完整表达式)需要首先计算 作为其子表达式的分支。叶表达式(即节点 没有分支)表示函数或数字。这 内部节点有两个部分:我们的求值规则 ,以及该表达式的结果。根据 这棵树,我们可以想象操作数的值向上渗透, 从终端节点开始,然后以越来越高的速度组合 水平。