购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.5 算法

在编写小型程序时,我们可以随意地组织代码顺序,因为代码量比较少,我们可以完全理解编写代码的内容。但是当编写大型代码时,代码量飞速增加,并且代码的逻辑变得很难理解。为了能够更好地编写需要的代码,我们可以先来理解一下计算机程序设计。计算机程序设计就是通过编写代码从而告诉计算机完成某一特定的任务。通常情况下,计算机是通过电子元器件来完成计算功能的,这些元器件的计算功能非常强大,计算速度非常快,可以用来完成很多复杂的计算任务。但是因为这些元器件并没有属于自己的思想,也就是说计算机并不太擅长自己思考,所以需要程序员通过编写代码的方式告诉计算机具体实现的细节,为了实现和计算机的交流沟通,程序员需要用一些特殊的语言将具体步骤告诉它。我们将这些特殊的语言称为机器语言(用来和自然语言做区别),将具体的步骤称为“算法”(我们可以将算法看作“程序”的另一种悦耳的说法——表示详细描述如何做某事)。比如下面的食谱:

1)大锅上用大火注入开水放入葱姜煮5分钟,然后将大块的五花肉放入锅中煮熟。

2)在砂锅内放入八角并铺好香葱和大葱。

3)把切好的姜片均匀地铺在葱上面。

4)五花肉煮熟捞出晾凉。

5)把煮熟的五花肉用刀切成均匀的大块,850克肉切成10~11块即可。

6)把五花肉的皮朝下,然后紧密地放在砂锅里。

7)在肉上先撒上冰糖,然后倒入适量的酱油,最后注入黄酒。

8)盖上砂锅大火烧开,锅开后,打开锅盖撇去浮沫。

9)再次盖上锅盖,改用文火开始慢炖,防止汤溢出锅。

10)大约炖两个小时便可以出锅。

这个食谱是用于完成“东坡肉”的过程,它具有讲究的组成结构。为了说明“东坡肉”的具体做法,它按照时间顺序讲解了不同的步骤,通常情况下这些步骤可以直接完成,但是有些步骤需要满足特定的条件。

为了很好地实现程序设计的任务,我们需要考虑算法中涉及的两个要素:表达式和语句。将下面两行代码分别在交互模式下输入:

在交互模式下,这两行代码具有相同的输出,但是这两行代码表示了不同的计算机要素,我们可以将第一行代码理解为一个表达式,第二行代码理解为一个语句。虽然两者可以得到相似的结果,但是两者存在一定的差异:表达式是某事,而语句是在做某事。在Python的交互模式下,为了突出相互的效果,Python解释器总是将表达式的值显示出来,所以上面两行代码出现了相同的效果。

在赋值情况下,语句和表达式之间的区别更加明显一些。因为语句不是表达式,所以没有值可供交互解释器打印出来:

可以看到,当我们输入三个赋值语句后,在IDLE的最新一行中出现了新的提示符。虽然看起来系统环境没有发生变化,但是由于赋值操作的存在,一些东西已经发生变化,上面的语句实现了将一些数值大小赋予一些变量的功能,现在,我们可以将变量x看作数值3,将变量y看作数值10,将变量z看作数值7。

因此我们可以这样定义语句:改变了事物的文字。例如,赋值语句改变了变量的数值大小,print函数语句改变了外部显示的内容信息。

我们可以将赋值语句看作计算机中最重要的语句类型,因为这样的语句实现了抽象的功能,从而增强了计算机语言的功能。我们可以将变量看作为一个“存储器”,它的功能在于:当程序操作变量的时候,计算机并不需要关心变量中存在的数值大小。例如,即使在运行程序后,不知道变量x和y的数值大小,计算机也能知道x*y的结果就是将变量x和y进行相乘操作后得到的结果。所以,在程序中可以有多种途径来使用变量,而不需要了解在程序运行的时候,最终使用的值的大小,这样编写出来的代码就具有很强大的功能。 ZaFaqhrXU4Mq44F6PAv0leG2PJB3YbOz88IDWPIevqdoSYnqR64z0GhYqh8GwPlo

点击中间区域
呼出菜单
上一章
目录
下一章
×