第8天 还记得大明湖畔的变量和函数吗
【教孩子学 Python 编程】系列 Day8:编写温度转换程序,了解变量、函数概念

不知不觉,我们已经一起写了好几个程序了。在编写程序的时候,很抱歉有些东西我刻意隐瞒了,因此今天我要停下来,给你讲讲当年大明湖畔的夏... 呸,变量和函数!
二元一次方程
我们知道温度的单位有摄氏度和华氏度,它们之间的关系是:
其中,F 表示华氏温度,C 表示摄氏温度。

为了看起来舒服点,我们用 x 替换 C,用 y 替换 F。于是得到 y = 1.8x + 32
这样一个二元一次方程。
我们可以简写为函数关系式 y = f(x)
其中 x 是自变量,y 是因变量,此式表示 y 随 x 的变化而变化。而如何变化的秘密就藏在函数 f()
,在这里也就是 y = 1.8x + 32
的关系。
所以,我们可以把自变量看成 “原因”,因变量看成 “结果”,函数看成是它们之间的 “关系”。

以上是数学上关于变量和函数的概念,计算机编程中变量和函数的概念也类似,但多了一些扩展。
同样是函数表达式 y = f(x)
,自变量 x 在程序中称为 “输入”,因变量 y 在程序中称为 “输出”。函数 f()
是中间处理过程,我们可以把它当成黑箱子,对于函数的使用者来说,通常只关心 “输入什么,就会输出什么” 的问题。
在程序设计中,自变量 x 也被称为 “参数”,因变量 y 则被称为 “返回值”。因此你可能会听到这样的描述:传入了参数 x,调用了函数 f(),返回了结果 y。
你的第一个Python函数
我们用之前学的编程知识来实现摄氏温度和华氏温度的转换:
x = float(input("请输入摄氏温度值:"))
y = 1.8 * x + 32
print("对应的华氏温度值为:", y)
第一行中的 float() 函数表示将输入的数值转换为浮点数(也就是小数)。
接下来,我们用函数来实现:
def f(Ce):
F = 1.8 * Ce + 32
return F
x = float(input("请输入摄氏温度值:"))
y = f(x)
print("对应的华氏温度值为:", y)
前三行就是函数的实现,Python 中的函数使用 def 来标识(def 是 define 的缩写),这个函数的功能是接收一个参数 Ce,经过转换得到 F,并将 F 返回给使用者。
在看看倒数第二行,是不是很熟悉?这不就是前面的函数表达式 y = f(x)
吗?在程序中,我们称为函数的调用,函数内部转换后的 F 就会传递给变量 y。
当然,函数的名字不总是叫 f,我们通常会根据函数的功能取一个恰当的名字。比如这个温度转换函数可以取名为 temp_convert 或者 Ce2F。
IPO 编程模型
还有点时间,再来讲一下 IPO 编程模型。IPO 模型是程序的基本编写方法,IPO 三个字母的含义如下:
I
:Input 输入,程序的输入。P
:Process 处理,程序的主要逻辑。O
:Output 输出,程序的输出。
IPO 方法讲解的是,在编写程序的时候,我们要关注输入是什么,输出是什么,如何从输入达到输出。

- 程序的输入:文件输入、网络输入、控制台输入、交互界面输入、内部参数输入等。输入是一个程序的开始
- 程序的输出:控制台输出、图形输出、文件输出、网络输出、操作系统内部变量输出等。输出是程序展示运算结果的方式。
- 程序处理:程序对输入数据进行计算产生输出结果的过程。处理方法统称为算法,它是程序最重要的部分(算法是一个程序的灵魂)。
一个程序可以有零个或多个输入,至少一个或多个输出。没有输出的程序是没有意义的。

进一步抽象,你会发现,这种 IPO 模型同样适用于我们人本身。每个人的人生都是 获取信息输入-大脑处理-总结输出 的一个过程。
比如当你面对考试时,考试成绩就是你的输出,平时的学习积累就是你的输入。比如对于现在的我来说,写东西就是最终的输出,输入就是我前面的经验和瞎想。
其实每件事都一样,最终的结果无外乎就是看 “有什么输入” 和 “怎样处理”。
如果你感觉迷茫,难以输出,也许是因为输入不够。这时候就要多读书多看报,少吃零食多睡觉!
Quality input ensures quality output
同时,我们人类的大脑处理方式有无数多种,每个人要理解这个世界,都需要自己找到底层的思维模型。通过建立思维模型,形成自己独特、高效的处理方法。

编程解决问题的步骤
- 分析问题:分析问题的计算部分(想清楚)
- 划分边界:划分问题的功能边界(规划 IPO)
- 设计算法:设计问题的求解算法(关注算法)
- 编写程序:编写问题的计算程序(编程序)
- 调试测试:调试程序使正确运行(运行调试)
- 升级维护:适应问题的升级维护(更新完善)
精简步骤
- 确定IPO:明确计算部分及功能边界
- 编写程序:将计算求解的设计变成现实
- 调试程序:确保程序按照正确逻辑能够正确运行