学径 LearnPath

模块

1 / 1 · ← → 翻页

阅读模式

第 10 课

模块:站在他人已经完成的工作之上

科学计算很少从零发明算术。

阿波罗导航计算机
阿波罗导航计算机主机与 DSKY。Grabert / NASA。来源:Wikimedia Commons,公有领域。

导言

课程目标

模块把可复用的思想变成可调用的工具。

导入是声明:使用我并未写出的那一层。

现象

登月也没有从零发明平方根

阿波罗导航计算机
阿波罗导航计算机主机与 DSKY。Grabert / NASA。来源:Wikimedia Commons,公有领域。

工程的尊严在于清楚哪些层已经可靠。

原理

一层一层被调用的工作

显示、导航、控制,分开检验。

按下的不是「从零算平方根」。

例证

整箱搬入,点号取出

python
import math

print(math.pi)
print(math.sqrt(9))
  • 函数仍住在模块里
  • 直接写 sqrt 会找不到名字

例证

斜边是已经完成的工作

python
print(math.sqrt(3 ** 2 + 4 ** 2))
  • 应得 5.0
  • 不必从零重推平方根

辨析

未声明则不存在

忘记导入,math 这个名字也不在。

名字不因你记得它就自动出现。

可现场删掉 import 再运行,阅读 NameError。

原理

只取出几件,来源变淡

python
from math import sqrt, pi

print(sqrt(9), pi)
  • 更短,也更容易同名覆盖
  • 不要把一箱子名字全部倒进来

例证

随机是被规定的过程

python
import random

print(random.randint(1, 6))
  • 两端都包含
  • 每次不同不是故障

辨析

本课环境里有什么

math、random,以及后续课的 turtle。

不必另行安装第三方包。

实践

本节练习

导入 math,算球的体积。

导入 random,取一次 0 到 10。

请打开「在线 IDE」。用 math.pi 算半径 5 的球体积;randint(0, 10) 含两端。

小结

本节要点

站在他人已经完成的工作之上。

接口应当可被看见。

下一课

下一课

形状可以是走出来的。

海龟几何:用运动写出形状。

已到最后一页。可按 ← 回顾,或切换回阅读模式。