学径 LearnPath

函数

1 / 1 · ← → 翻页

阅读模式

第 8 课

抽象:把过程藏进一个名字

系数送进去,解交出来。

差分机二号
伦敦科学博物馆按巴贝奇差分机二号图纸复原的机器。摄影:User:geni。来源:Wikimedia Commons,CC BY-SA 4.0。

导言

课程目标

函数抽象的是过程。

参数对应系数,返回值对应未知数。

打印给人看,返回值给下一计算。

现象

机器要执行的是方法,不是一道题

差分机二号
伦敦科学博物馆按巴贝奇差分机二号图纸复原的机器。摄影:User:geni。来源:Wikimedia Commons,CC BY-SA 4.0。

换一组初值,不必重造机器。

现象

四道方程,步骤同形

2x+3=02x+3=0

−5x+10=0-5x+10=0

4x−7=3x4x-7=3x

x−4=3x+2x-4=3x+2

请口算。解依次为 -3/2、2、7、-3。

原理

过程同形,换的是数字

把方法封进一个名字。

以后只改参数,不改算法。

这就是抽象。

例证

solve:四个参数,一个返回值

python
def solve(a, b, c, d):
    A = a - c
    D = d - b
    if A != 0:
        return D / A
  • 调用处只看见接口
  • 只定义不调用,什么也不会发生

辨析

方程语言对照程序语言

未知数 xx:返回值。

系数 a,b,c,da,b,c,d:参数。

解方程的步骤:函数体。

例证

只打印,接不上第五道

python
print((0 - 3) / 2)
x = solve(2, 3, 0, 0)
  • 屏幕上的数不能当下一道的系数
  • 返回值留给程序继续用

例证

嵌套:前四次的解进入第五次

python
a_ = solve(2, 3, 0, 0)
b_ = solve(-5, 10, 0, 0)
print(solve(a_, b_, c_, d_))
  • 返回值让过程接得上

讨论

已知进去,所求出来

说不清两侧,函数只是在传话。

内部可以很长,调用仍可以是一行。

实践

本节练习

传入 100,应返回 212。

再减去 32,应得到 180。

请打开「在线 IDE」。100 摄氏度应返回 212,并且能再减去 32。

小结

本节要点

抽象:把过程藏进一个名字。

打印给人看,返回值给下一计算。

下一课

下一课

当思想要模仿的是带状态的事物。

对象:用结构模仿事物。

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