Python编程零基础入门

978-7-115-51977-1
作者: [美]安娜·贝尔(Ana Bell)
译者: 徐波
编辑: 武晓燕
分类: Python

图书目录:

详情

本书是一本真正地从零开始讲解Python编程的图书,它旨在让零基础读者较快地掌握编程知识,并能使用程序来满足自己的需要。 本书共有9个部分,除第1部分外,其余部分都以一个阶段性项目结尾。第1部分(第1~2章)介绍了学习编程的意义;第2部分(第3~6章)介绍编程的基本知识;第3部分(第7~12章)讲解了字符串、元组以及与用户交互的代码;第4部分(第13~15章)介绍如何编写程序来进行选择;第5部分(第16~19章)主要涉及循环的相关知识;第6部分(第20~23章)引入了函数和模块化的相关概念;第7部分(第24~29章)介绍了一些高级对象类型,如可变对象、列表、字典等;第8部分(第30~34章)为面向对象编程的相关知识;第9部分(第35~38章)介绍了一些可供读者使用的现成代表库。

图书摘要

版权信息

书名:Python编程零基础入门

ISBN:978-7-115-51977-1

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。

著    [美]安娜•贝尔(Ana Bell)

译    徐 波

责任编辑 武晓燕

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315

读者服务:

微信扫码关注【异步社区】微信公众号,回复“e51977”获取本书配套资源以及异步社区15天VIP会员卡,近千本电子书免费畅读。

内容提要

本书是一本真正地从零开始讲解Python编程的图书,它旨在让零基础读者较快地掌握编程知识,并能使用程序来满足自己的需要。

本书共有9个部分,除第1部分外,其余部分都以一个阶段性项目结尾。第1部分(第1~2章)介绍了学习编程的意义;第2部分(第3~6章)介绍编程的基本知识;第3部分(第7~12章)讲解了字符串、元组以及与用户交互的代码;第4部分(第13~15章)介绍如何编写程序来进行选择;第5部分(第16~19章)主要涉及循环的相关知识;第6部分(第20~23章)引入了函数和模块化的相关概念;第7部分(第24~29章)介绍了一些高级对象类型,如可变对象、列表、字典等;第8部分(第30~34章)为面向对象编程的相关知识;第9部分(第35~38章)介绍了一些可供读者使用的现成代表库。

本书不仅适用于Python语言的初学者,也适合有一定Python语言基础的读者学习,还可以作为高等院校相关专业的教学用书和培训学校的教材。

我写作本书有两个主要的原因。我的目标是编写一本真正从零开始学习编程的图书,并且想把编程表述为一种能够在日常生活中为我们提供帮助的活动。

人们常常误认为编程是一项艰巨的工程,编写程序好像就是为了解决全世界的难题。事实并不是这样。编程也可以在日常生活中为我们提供帮助!我随时都在编写小程序,有时候是为了解决一些难题,有时候只是为了帮助我做出一些决定。

在本书中,我希望能够一直贯彻这种精神,尽可能使每个人都学会编程。读者只要具备少许的编程知识,就可以编写实用的程序满足自己的需要。

我在MIT用Python语言为本科生讲授入门级的计算机科学课程。学习我的课程的大部分学生之前没有任何编程经验。我的课程节奏非常快,许多学生问我是不是还有其他在线资源可以帮助那些从未学习过编程的人。但是,我为他们提供的几乎所有资源都要求掌握一定的编程知识,这就添加了一层额外的障碍。他们必须先理解编程的概念,然后才能把这些概念应用到Python语言。不管我教了多少年的编程,我时刻提醒自己不要忘了下面的学生都是从零开始学习编程的。我希望本书能够成为用当前最流行的语言之一所编写的容易上手的编程入门图书,能够向读者展示编程并不是一件非常困难的事情。

致谢

我非常高兴能编写本书,使我有机会带领读者走入编程的广阔世界。

首先,我要感谢我的丈夫CJ,他在我写作本书时对我的支持始终不曾动摇,包括向我提供建议,或者当我周末加班写书时帮忙照看孩子。然后,我要感谢我的父母和姐姐。我父亲在我12岁的时候教我编程,我不会忘却他不厌其烦地向我解释面向对象编程,直到我最终领悟。我的母亲和姐姐多次在我忙于写作的时候长途跋涉来帮我照顾孩子。尤其是我的母亲,她是我的“秘密武器”。她以前从来没有学过编程,因此是一个完美的目标读者。她在我写作时同步参与了学习,对章节的内容以及练习部分提出自己的意见。

我还要感谢我在Manning出版社的责任编辑:Kristen Watterson、Dan Maharry和Elesha Hyde。我非常感谢这几位编辑在我编写和修订本书时所表现出来的耐心。本书经过多次修订才变成现在这个样子,几位编辑提出了很多非常宝贵的建议,使本书更加完善。另外也非常感谢我的技术编辑Frances Buontempo和技术校对人Ignacio Beltran Torres,他们非常仔细地阅读了本书,并指出了本书的错误之处,还提出了许多宝贵的建议,进一步提升了本书的质量。此外,还要感谢Manning出版社帮助制作和完善本书的其他工作人员。当然,还要感谢本书的审阅者们,他们花费大量的时间对本书进行了阅读和评论,他们是Alexandria Webb、Ana Pop、Andru Estes、Angelo Costa、Ariana Duncan、Artiom Plugachev、Carlie Cornell、David Heller、David Moravec、Adnan Masood、Drew Leon、George Joseph、Gerald Mack、Grace Kacenjar、Ivo Stimac、James Gwaltney、Jeon-Young Kang、Jim Arthur、John Lehto、Joseph M. Morgan、Juston Lantrip、Keith Donaldson、Marci Kenneda、Matt Lemke、Mike Cuddy、Nestor Narvaez、Nicole E. Kogan、Nigel John、Pavol Kráľ、Potito Colluccelli、Prabhuti Prakash、Randy Coffland、R. Udendhran Mudaliyar、Rob Morrison、Rujiraporn Pitaksalee、Sam Johnson、Shawn Bolan、Sowmy Vajjala-Balakrishna、Steven Parr、Thomas Ballinger、Tom Northwood、Vester Thacker、Warren Rust、Yan Guo和Yves Dorfsman。

前言

本书的目标读者

本书的目标读者是所有对编程感兴趣的人,它并不要求读者以前有任何编程经验,只需要熟悉下面这些概念。

变量:在数学课上学过初等代数的读者应该知道什么是变量。本书解释了编程中的变量与数学中的变量的区别所在。

确定语句的真假(True/False):语句就是可以确定为真或假的句子。例如,“下雨了”就是一个可以为真也可以为假的语句。我们应该知道怎么在语句上添加否定条件以改变它的真假值。例如,如果“下雨了”为真,则“没有下雨”就为假。

语句的连接:如果有多条语句,可以用“和(并且)”“或者”把它们连接在一起。例如,“下雨了”和“我很高兴”可以连接为“下雨了,并且我很高兴”。

做出选择:对于多条语句,我们可以使用“如果……则”结构判断一条语句是否为真,在此基础上做出一个选择。例如,“如果下雨了,则地面是湿的”就是由两条语句“下雨了”和“地面是湿的”所组成的。“地面是湿的”这条语句是“下雨了”这条语句的结果。

按照指令执行下列活动(或类似活动):玩20个问题组成的游戏、根据菜谱做菜、完成冒险游戏或理解一种算法(遵循一组指令,做出分支选择)。

本书的组织形式:路线图

本书分为9个部分,共38章。除第1部分外,其余部分都以一个阶段性项目结尾。每个部分都通过一系列的紧凑章节讨论一个重要的编程概念。各个部分的介绍如下。

第1部分鼓励读者走进编程世界。我们将看到怎样把编程与读者曾经完成过的其他任务进行比较。

第2部分介绍了编程背后的基础知识以及计算机程序的基本组成部分。我们将下载一个编程环境并熟悉它,掌握怎样用它编写程序。

第3部分通过获取用户的输入以及向用户显示输出,开始编写与用户进行交互的代码。

第 4 部分介绍了怎样编写程序做出选择。我们将编写代码来实现不同方向的分 支。当程序运行时,它根据决策点的值选择采用哪个分支。

第5部分建立在计算机能够快速完成任务的思路之上。我们在编写代码时将充分利用计算机的速度优势,编写能够自动重复执行多次的一组命令,从而多次重复执行某些命令。

第6部分介绍了一种编写组织化代码的方式,将函数作为包含一些可复用代码的模块。

第 7 部分介绍了一些可以在编程时使用的高级对象类型。在学完这个部分之 后,我们能够编写具有极强实用性并且功能极为丰富的程序。

第8部分介绍了怎样创建自己的对象类型。这个功能并不是所有的编程语言都具有的,但当前仍在使用的编程语言大多具备这个功能。

第9部分是本书的终篇,它介绍了其他人所编写的一些代码库,可以供我们在自己的程序中使用。该部分还把一些抽象的概念集成在一起,介绍了怎样对代码进行组织,并利用以前所编写的代码。

代码

本书的内容和代码是用Python 3版本描述的,这也是本书写作时最新的Python版本。

本书的代码例子显示了如何应用每一章所学习的概念,执行一个在日常生活中可能需要完成的任务。在本书将要结束时,这些代码例子也越来越长,有些时候会在不同的场景下再次完成原来的任务。

除第1部分外,在其余部分结束时,会有一个阶段性项目对这个部分的各个章节所介绍的概念进行总结。首先描述一个问题,然后逐渐完成一个可行的解决方案。我们将会发现如何把这个任务所规划的语言描述“转换”为代码。

本书的源代码例子有很多出现在带编号的程序清单中,也有很多与普通的文本编排在一起。不管是哪种情况,源代码都采用固定宽度的字体,以便与普通的文本进行区别。有时候,代码是用粗体表示的,以强调这些代码是在本章前面相同步骤的代码的基础上进行了修改,例如在一行现有的代码中添加了一个新特性。

在许多情况下,我们对原始的源代码进行了重新编排。我们添加了行分隔符并重新安排了缩进,使代码能够容纳于书页空间中。在少数情况下,这种做法仍然无法满足需要,此时程序清单中会包含行延续标记(➥)。

另外,如果在正文中已经对代码进行了描述,在源代码中往往就会省略这些代码的注释。许多程序清单伴有代码的注解,强调了一些重要的概念。

本书的论坛

购买本书的读者可以免费访问Manning出版社维护的一个私有论坛。在这个论坛中,读者可以对本书做出评价、咨询技术问题并获取作者和其他用户的帮助。

Manning为读者所提供的服务是一个交流场所,读者之间以及读者和作者之间可以进行有意义的对话。对于论坛中的活跃作者数量,我们并没有具体的承诺,因为作者对论坛的贡献是自愿的(没有报酬)。为了避免作者们觉得乏味,建议读者向他们咨询一些具有挑战性的问题。只要本书仍处于在售状态,读者都可以通过出版商的网页访问这个论坛并得到讨论内容的详细信息。

作者简介

Ana Bell博士是麻省理工学院(Massachusetts Institute of Technology,MIT)电子工程和计算机科学系的讲师。

她用Python主讲了两门计算机科学入门课程,历时已有五年之久。其中一门课程的目标人群是那些没有任何编程经验的学生,另一门课程在第一门课程的基础上进行了拓展。她非常乐于向学生讲授编程知识,并且享受学生们在学习编程过程中由于不断进步而逐渐获得的自信。用不同的方式向学生讲述同一个概念,学生能够融会贯通地理解和应用是她收获的最大回报。

她在普林斯顿大学时开始接触Python,并在自己的研究中应用Python解决问题。根据自己的经验,她觉得Python是一种天性自然的语言,非常易于学习和使用。

资源与支持

本书由异步社区出品,异步社区(https://www.epubit.com)为您提供后续服务。

您还可以扫码二维码, 关注【异步社区】微信公众号,回复“e51977”直接获取,同时可以获得异步社区15天VIP会员卡,近千本电子书免费畅读。

提交错误信息

作者、译者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎读者将发现的问题反馈给我们,帮助我们提升图书的质量。

当读者发现错误时,请登录异步社区,按书名搜索,进入本书页面(见下图),单击“提交勘误”,输入错误信息,单击“提交”按钮即可。本书的作者、译者和编辑会对读者提交的错误信息进行审核,确认并接受后,读者将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。

扫码关注本书

扫描下方二维码,读者将在异步社区微信服务号中看到本书信息及相关的服务提示。

与我们联系

我们的联系邮箱是contact@epubit.com.cn。

如果读者对本书有任何疑问或建议,请发邮件给我们,并请在邮件标题中注明书名,以便我们更高效地做出反馈。

如果读者有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们;有意出版图书的作者也可以到异步社区在线提交投稿(直接访问www.epubit.com/ contribute即可)。

如果读者所在的学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。

如果读者在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请将怀疑有侵权行为的链接通过邮件发给我们。读者的这一举动是对作者权益的保护,也是我们持续为读者提供有价值内容的动力之源。

关于异步社区和异步图书

异步社区”是人民邮电出版社旗下IT专业图书社区,致力于出版精品IT图书和相关学习产品,为作译者提供优质出版服务。异步社区创办于2015年8月,提供大量精品IT图书和电子书,以及高品质技术文章和视频课程。更多详情请访问异步社区官网https://www.epubit.com。

步图书”是由异步社区编辑团队策划出版的精品IT专业图书的品牌,依托于人民邮电出版社近40年的计算机图书出版积累和专业编辑团队,相关图书在封面上印有异步图书的LOGO。异步图书的出版领域包括软件开发、大数据、人工智能、测试、前端、网络技术等。

异步社区

微信服务号

第1部分 学习编程

本书刚开始的时候,我首先要激发大家学习编程的兴趣。不管读者是什么身份,学习一些编程知识总是有益无害的。我们甚至可以在日常生活中使用编程,使自己需要完成的一些工作变得简单。在本书的这个部分,我们将简单地介绍一些在开始编程之前应该熟悉的概念,并知道在学完本书之后能够掌握哪些知识。

在这个部分的最后,我们将以一个烘焙面包的例子帮助读者理解编程是一项需要实践和创造力的技能。这个部分归纳了本书学习之旅的中心思想:大量的实践!学习编程看上去是一个艰巨的任务,但是我们只需要日积月累每天提升一小步。这是一条充满艰辛但回报也极为丰厚的道路。

让我们开始本书的学习之旅吧!

第1章 为什么要学习编程

在学完第1章之后,你可以实现下面的目标。

理解编程的重要性

制订学习编程的计划

1.1 为什么编程很重要

编程是随处可见的。不管我们的身份是什么、从事的工作是什么,都可以学习编程,使自己的工作或生活变得更加轻松。

1.1.1 编程并不仅限于专业人员

不论是程序员老手还是从未学过编程的菜鸟,都存在一个误解,以为一旦开始学习编程,就必须持续学习,直至成为专业程序员。这个误解很大程度上来自那些极为复杂的系统,包括操作系统、汽车/航空软件和人工智能等。

我觉得编程就是一项技能,就像阅读、写作、数学或烹饪一样。我们并不一定要成为畅销书的作者,也不一定要成为世界一流的数学家或者米其林星级餐厅的厨师。

如果具备下面这些领域的一些知识,就可以显著地提高自己的生活质量:如果知道怎样阅读和写作,就可以与其他人进行交流;如果掌握了基本的计算,至少在餐厅付小费时就不会算错;如果明白了怎样根据菜谱进行烹饪,在必要的时候就可以自己做饭。知道一些编程知识可以避免自己在某些场合不得不向其他人求助,可以帮助自己用一种特定的方式更有效地完成想要完成的任务。

1.1.2 改善自己的生活

如果学习了编程,你可以使用技巧有效地创建自己的工具箱。把编程融入自己生活中的程度越深,解决个人任务的效率也就越高。

为了维持自己的编程水平,可以经常编写自定义的程序以满足自己的日常需要。自己编写程序而不是使用现有的程序的优点是可以对它们进行自定义,以适应自己的准确需要。具体事例如下。

我们以前有没有习惯在本子上记录每张支票的信息?我们可以考虑把它们输入一个文件中并编写一个程序,读取这个文件并对信息进行组织。通过编程,在读取数据之后,我们就可以计算总金额、根据日期范围对支票进行分组,或者进行其他想要的操作。

我们是不是经常拍照并把照片下载到自己的计算机上,但照相软件所提供的文件名并不是我们想要的名称?我们不需要通过手工方式为数以千计的照片进行重命名,而是可以编写一个简短的程序自动对所有的文件进行命名。

如果我们是准备参加SAT考试的学生,想要确定自己对二次方程式的解答是否正确,那么可以编写一个程序,使它根据缺少的参数对方程式进行求解。这样,在手工解题之后,就可以通过这个程序进行验算,确定自己的计算结果是否正确。

如果一位教师想要批量地向每位学生发送一封个性化的电子邮件,其中包含了学生某次考试的成绩,他不需要手工复制和粘贴文本来填充成绩,而是可以编写一个程序,从一个文件读取学生的姓名、电子邮件地址和成绩,然后高效自动地完成每位学生的邮件内容的填写,并发送邮件。

上面的场景说明编程可以使我们的生活更有条理,提高工作效率。

1.1.3 挑战自我

编程看起来像是一件技术活。刚开始编程的时候确实如此,尤其是在学习基本概念的时候,但编程也是一项很有创造力的活动。通过编程用几种方法完成一个任务之后,就需要做出决定,选择最为合适的方法。例如,在阅读一个文件的时候,是一次读完所有的数据、保存文件并进行一些分析,还是每次读取部分数据,并随时对数据进行分析?根据自己所掌握的知识做出决定,就向自己提出了挑战:更深入地思考自己想要实现的目标以及如何更有效地实现这些目标。

1.2 起点与终点

本书并不要求我们具有任何编程经验。如果我们具有一定的编程经验,应该熟悉下面这些内容。

理解变量——如果我们以前学过初级代数课程,应该明白什么是变量。在本书的下一部分,我们将会了解编程中的变量概念与代数中的变量的区别。

理解真/假(True/False)语句——我们可以把语句看成用于确定真假的句子。例如,“下雨了”这条语句可以为真,也可以为假。我们还可以使用not这个词把语句转换为其相反值。例如,“下雨了”为真,那么“没有下雨”就为假。

连接语句——如果有多条语句,可以用单词and或or连接它们。例如,“下雨了”为真,“我饿了”为假,则“下雨了并且我饿了”就为假,因为这两个部分都必须为真这条语句才能成立。但是“下雨了或者我饿了”为真,因为至少有一个部分为真。

做出决定——如果有多条语句,就可以使用ifthen根据一条语句是否为真来做出决定。例如,“如果下雨了,地面就是湿的”由两个部分组成:“下雨了”和“地面是湿的”。语句“地面是湿的”是语句“下雨了”的后果。

遵循流程图——理解本书的内容并不需要用到流程图,但理解流程图所需要的技巧与理解基础编程知识是一样的。这种技巧的其他应用还包括玩问题游戏、遵照菜谱做菜、阅读自己最喜爱的书籍以及理解算法等。我们应该熟悉遵循一组指令并做出分支决策的过程。流程图显示了一个指令列表,其中的指令从一个流向另一个,允许我们做出决定,从而导致不同的路径。在流程图中,我们会被询问一系列的问题,它们的答案是二选一:是或否。根据问题的答案,我们将会选择流程图中的某条特定路径,最终得到一个答案。图1.1是流程图的一个例子。

掌握了前面的技巧就可以开始我们的编程之旅了。在读完本书之后,我们将掌握编程的基础知识。我们将要学习的适用于所有编程语言的基本概念包括:

在编程中使用变量、表达式和语句;

使程序根据条件做出决定;

使程序在某些条件下自动地反复执行任务;

复用语言内置的操作,提高工作效率;

通过把一个大型任务分解为几个更小的任务,使代码更容易理解和维护;

理解不同的场合适合使用哪种数据结构(一种已经创建的结构,可以用某种特定的格式存储数据)。

图1.1 决定今天是否带伞的流程图

我们将使用一种名为Python(3.5版本)的语言来学习怎样进行编程。本书所学习的所有关于编程概念的知识都可以很轻松地转换到其他任何编程语言中,因为不同编程语言的基础知识都是相同的。更具体地说,在本书结束时,我们将熟悉Python编程语言的细节。我们将掌握下面这些内容。

怎样使用Python语言的语法(在英语中,相当于怎样形成合法的句子)。

怎样有机地组合不同的代码块,编写更为复杂的程序。

怎样使用其他程序员所编写的代码(在英语中,相当于引用其他人所写的作品,这样自己就无须重新书写)。

怎样有效地检查程序是否能够完成任务,包括测试和调试(在英语中,相当于检查拼写错误和语法错误)。

怎样编写通过键盘和鼠标与用户进行交互的程序。

怎样编写以数据为中心的程序或数学程序。

1.3 我们的编程学习计划

在学习编程语言时,个人的动力是最重要的成败因素之一。坚实缓慢的学习节奏、大量的实践、花费足够的时间充分理解学习材料,可以使迈向成功的道路更平坦。

1.3.1 开始步骤

如果我们之前完全没有编程经验,就非常适合使用本书进行学习。本书分为几个部分,每个部分包含几章,其中每章都和某个特定的编程概念有关。

本书每一部分的第一章通常是为了增强我们的学习动力,最后一章则是一个阶段性项目,介绍一个现实生活的问题或任务。我们可以自己尝试完成这个阶段性项目,或者认真阅读它的解决方案,重要的是我们走在理解这些概念的道路之上。

针对我们所阅读的内容,本书提供了很多实践的机会。在每一章开始时,我们将会看到一个简单的练习,称为“场景模拟练习”,它引导我们思考周围的世界以及与它进行交互的方式。这个练习向我们介绍了该章的主要思路。它在描述问题时并没有使用与该章将要学习的各种编程思路有关的术语或提示。在本章中,我们将了解怎样把用日常语言描述的练习“转换”为代码。每一章包含了许多练习,帮助我们理解概念。完成所有的练习可以帮助我们强化对概念的理解。这些练习的答案可以在附录A中找到,方便我们进行检查。

随时随地进行练习,对于本书前几章学习Python编程的基础知识而言,显得特别重要。在最后几章中,我们将会看到其他程序员所编写的一些程序包,有机会学习如何使用这些程序包创建更为复杂的程序。其中一个程序包允许我们创建通过鼠标和键盘进行可视化交互的程序,可以看到自己的程序在屏幕上更新一幅图像。另一个程序包向我们展示了如何与输入数据进行交互。我们将学习如何读取某种结构的文件,如何分析收集的数据以及如何把数据写入另一个文件。

1.3.2 实践!实践!实践

每一章都包含了一些提供了解决方案的小练习。在Python中(也可以推及到编程这个整体),大量的实践对于真正理解概念是至关重要的,尤其是当我们之前从来没有学习过编程的时候。不要被编写程序时所产生的错误所吓倒,通过修正预期之外的错误,可以加深自己对编程的理解。

我们可以把这些练习看成阶段性的检验,以了解自己对相关知识的掌握程度。编程并不是一种被动的活动。我们应该坚持不懈地进行实践,积极理解和思考书中所描述的问题和概念。阶段检验练习所涉及的是该章所讨论的重要概念,覆盖该章的所有学习材料,因此要尝试自行完成每一个习题练习。如果读者具有强烈的探索精神,甚至可以尝试完成这些练习的一些变体,尝试为自己所想到的问题编写新的程序。

1.3.3 像程序员一样思考

本书有意提供独一无二的学习体验。我不仅想教大家怎样用Python编程,还想指导大家能够像程序员一样思考。

为了理解这个说法,请参考下面这个比喻。有两个人,其中一个是小说作者,另一个是新闻记者。小说作者构思了情节、人物、对话和交流,然后遵循语言的规则,按照一种有趣的方式把这些思路组合在一起。小说作者编写故事供人们娱乐。记者在创造力方面并没有太高的要求,他根据事实描写故事。记者把这些事实写在纸上,同样遵循语言的规则,为人们提供信息。

小说作者与新闻记者之间的比较可以说明计算机科学家与程序员的区别。计算机科学家和程序员都知道怎样编写计算机代码,都遵循一种编程语言的规则以创建能够完成某个任务的程序。就像小说作者所思考的是独特的故事以及怎样以最好的方式描述该故事,计算机科学家把更多的精力放在构思新的思路而不是用语言组织他们的思路上。计算机科学家思考全新的算法或者研究理论问题,例如计算机可以做什么以及不能做什么。另一方面,程序员根据现有的算法或他们必须遵循的一组需求实现程序。程序员熟悉语言的细节,可以快速、有效、正确地实现代码。在现实中,程序员和计算机科学家的角色常常会重叠,他们之间并没有明确的分野。

本书将介绍如何向计算机提供详细的指令,由计算机实现相关的任务,并帮助我们成为这方面的行家里手。

 像程序员一样思考 

在学习本书的过程中,要关注这个模块的内容。

我们将得到一些有用的原则,提示我们在当前所讨论的概念上怎样像计算机程序员一样思考。这些原则把本书内容紧密地结合在一起,这有助于我们形成程序员的思维。

下一章提出了一些原则,我们在进行每一章的学习时要牢记这些原则,尽快进入程序员的角色。在适当的时候,本书会向我们提示这些原则,我们在学习本书的过程中要学会深入思考这些原则。

1.4 总结

在本章中,我们的目标是激发自己学习编程的动力。我们并不一定要成为专业程序员。使用基本的编程思路和概念可以改善我们的个人生活,这个目标甚至可以用很简单的方式实现。编程是一项技巧,通过大量的实践可以帮助我们加深对它的理解。当我们阅读本书时,可以思考自己在生活中手工完成的枯燥乏味的任务是不是可以通过编程更有效地解决,并积极进行尝试。

让我们开始本书的学习之旅吧!

读者服务:

微信扫码关注【异步社区】微信公众号,回复“e51977”获取本书配套资源以及异步社区15天VIP会员卡,近千本电子书免费畅读。

相关图书

深度学习的数学——使用Python语言
深度学习的数学——使用Python语言
动手学自然语言处理
动手学自然语言处理
Web应用安全
Web应用安全
Python高性能编程(第2版)
Python高性能编程(第2版)
图像处理与计算机视觉实践——基于OpenCV和Python
图像处理与计算机视觉实践——基于OpenCV和Python
Python数据科学实战
Python数据科学实战

相关文章

相关课程