没啥用计算器
学了这么多新的知识,怎么用起来呢?我们用两节内容,来将前面的部分知识串起来。 我在下面的小项目中,如果用到了什么知识,我都会链接到之前的内容,让你知道为什么我们要用这样的方法/技术。 怎么样用这些来做出一个项目来。
我希望你学习这一节的时候,和现实生活中遇到挑战一样。从问题的角度去找解决方案, 去分析,去思考为什么我要这样做,怎么做得更好?
好了,废话不多说,我们开始上挑战!
我遇到了问题¶
假设这是一个计算机刚刚普及的时代,还没有一个好用的计算器。虽然现在看起来,计算器已经是计算机必备的功能了, 但是在以前,能开发出一个计算器,也是十分有用了。
不过我依然想先把这个项目开发出来的这个计算器产品叫做 没用计算器
useless-calculator~ 哈哈哈。显得乐在其中。
产品定位¶
嗯,计算器,那就该有计算器该有的样子。我先定位一下这个产品出来以后能怎么用?
- 计算两个数的加减乘除等一些常用方法
- 一次性计算一批数据的运算结果
好,就这么简单两项,能为我的生活创造出很多价值了,特别是第二个功能,让我能一次性处理一批数据。这个需求很常见,比如我在 excel 里面有一批数据, 都要处理,那么批处理就十分有用了。
程序设计¶
既然现实当中的计算器是一个实体,而且还能量产。意味着,有一个顶层设计之后,我们可以批量生产计算器实例。 这不就和 前面的 class 很像了吗?顶层设计是 class 的设计,用设计图生产出来的计算器实体就是把 class 实例化的 instance。 计算器拥有的功能就是 class 里面定义的 method。
OK,有了这个想法,我们就来设计这么一个 class 吧。
上面看起来还不错,你运行一下吧,看看会出什么结果。你也可以尝试改变一下输入输出,看看有什么其他效果。 另外,计算机除了上面这些简单的加减乘除,还会有平方,求根等其他操作。 看你能不能参考我的数学运算教学, 在上方的编辑器中继续补全这些功能呢?
批量计算¶
我的 没啥用计算器
useless-calculator 已经炉火纯青了,任何两个数的计算都不在话下。 那么我们更近一步,去满足批量计算的过程。如果你拿到这个任务,你会怎么思考来实现呢?
没错,用列表, 和 循环 的方式, 当然,如果你觉得你可以用字典,也成。只要你用对了就好。
而且,如果是我来做这个设计,我会直接复用我之前写好的那些单个单个计算的功能,简化我的操作,加固我的处理的能力。
同样,要不你也来补全一下其他的功能,把它变成一个真正的 useless-calculator~
总结¶
虽然我没有写完所有的 useless-calculator 的功能,因为我想在这节内容中表达的并不是去真正写一个计算器,而是一整套思考的过程。 从问题定位,到程序设计,到定制解决方案,到最后的简化问题,复用代码等等方面。 用最简单的一个计算器案例来串起来整个流程。这样即使你在后面遇到更复杂的问题,更难处理的问题,也能通过这一套思路,一步步解决。 下一节,我们用一个文件处理的案例再练习一遍。