图书前言

01Python是由Guido van Rossum于1989年底发明的,第一个公开发行版发行于1991年。Python推出不久便迅速得到各行业人士的青睐,目前已经渗透到计算机科学与技术、统计分析、移动终端开发、科学计算可视化、逆向工程与软件分析、图形图像处理、人工智能、游戏设计与策划等几乎所有专业和领域,并且已经成为卡耐基·梅隆大学、麻省理工学院、加州大学伯克利分校、哈佛大学等国外很多大学计算机专业和非计算机专业的程序设计入门教学语言,国内也有不少学校陆续开设了Python程序设计课程。Python语言连续多年在TIOBE网站的编程语言排行榜上排名七八位左右,并于2011年1月被TIOBE网站评为2010年年度语言。在2014年12月份IEEE Spectrum推出的编程语言排行榜中,Python更是取得了第5位的好名次。

Python是一门开源的高级动态编程语言,支持命令式编程、函数式编程、面向对象程序设计,语法简洁清晰,并且拥有大量功能丰富而强大的标准库和扩展库,可以帮助各领域的科研人员或策划师,以及管理人员快速实现并验证自己的思路与创意。Python使得用户可以把主要精力放在业务逻辑的设计与实现上,而不用过多考虑语言本身的细节,开发效率非常高,其精妙之处令人赞叹。另外,还可以使用py2exe工具将Python程序轻易转换为exe可执行程序,它脱离Python解释器以便在没有安装Python环境的Windows平台运行,极大地方便了用户的使用。

Python是一门快乐的语言,学习和使用Python也是一个快乐的过程。与C语言系列或Java等语言相比,Python更容易学习和使用,但这并不意味着可以非常轻松愉快地掌握Python。熟练掌握和运用Python仍需要通过大量的练习来锻炼自己的思维和熟悉Python编程模式,同时还需要经常关注Python社区优秀的代码以及各种扩展库的动态。

Python是一门优雅的语言。如果您有其他程序设计语言的基础,那么在学习和使用Python的时候,一定不要把其他语言的编程习惯带到Python中来。您应该尽量尝试从最自然、最简洁的角度出发去思考和解决问题,这样才能写出更加优雅、更加Pythonic的代码。

本书内容组织

全书共两篇17章,第一篇重点介绍和讲解Python程序设计基础知识,主要包括Python基本数据结构、控制结构、正则表达式、类与函数设计、文件操作、异常处理与程序调试等内容。第二篇通过大量的案例介绍Python的多个扩展库在GUI编程、图形图像编程、音乐编程与语音识别、科学计算可视化、网络编程、逆向工程与软件分析、大数据处理、多语言混合编程和Windows系统编程等方面的应用。

在真正编写和开发一个应用程序时,需要用到方方面面的知识,既包括Python基本语法与数据结构,又包括选择、循环等控制语句,类与函数设计,异常处理结构,文件处理,以及各种扩展库的综合运用,甚至还有可能需要与其他语言结合,这些知识总是互相交织在一起的,很难彻底分开。因此,在编写本书前面的内容时,可能会偶尔用到后面的知识,这实在是一个很难避免的问题。虽然作者已经很努力地把内容组织为容易理解的形式,但不得不说,仍有很多知识需要您前后翻阅多次才能真正融会贯通。

本书作者具有15年的程序设计教学经验,讲授过多门程序设计语言,分别使用汇编语言、C、C++、C#、Java、PHP、Python等不同语言编写过大量的应用软件。在本书内容的组织和安排上,结合了自己多年的应用开发和教学工作中积累的许多案例,把实际应用中的大量案例巧妙地糅合进了相应的章节。

本书内容组织的最大特点是不仅信息量大,而且知识点全面、密集。考虑到Python软件和扩展库的安装过程较为简单,绝大部分读者都能够顺利安装,在书中花费大量篇幅一步步介绍安装过程的意义和必要性并不大。因此,在整本书中都没插入任何软件和相关扩展库的安装过程截图,而是充分利用有限的篇幅来介绍和讲解知识点,可以说是物超所值。

本书适用读者

本书不仅可以作为Python程序设计语言课程的教材和具有一定Python基础的读者的进阶学习资料,还可以作为多个领域的Python应用开发人员的参考书,既可以作为计算机科学与技术、数字媒体技术、软件工程、网络工程、信息安全、会计、经济、金融、心理学、统计等多个专业本科和研究生的程序设计教材,也可以作为打算使用Python快速实现自己研究思路和创意的科研人员及管理人员的参考书,当然也适合那些打算利用业余时间学习一门快乐的程序设计语言并编写几个小程序来娱乐的读者。

如果作为本科专业课程教材,建议学时为48学时课堂授课+16学时上机实验,如果采用边讲边练的教学模式,建议控制在72学时左右;如果作为非计算机专业研究生教材,建议为48学时课堂授课,上机部分可以由研究生自行完成。除了讲授第一篇中全部知识以外,根据学生基础、专业特点和培养目标,再酌情选择第二篇中的部分章节进行讲解。另外,第一篇的知识应尽量按照本书组织的先后顺序进行讲解和学习,而第二篇中的章节可根据需要进行前后调整,并不一定要严格按照本书的顺序。如果作为本科非计算机专业程序设计语言公共课或选修课教材,建议采用48学时边讲边练的教学模式,可以略过第一篇中的高级话题以及第8章的内容,再根据具体的学生专业选择第二篇中的一到两章进行讲解,其余章节可以由学生根据自己的兴趣进行阅读。

教学资源

本书提供全套教学课件、源代码、课后习题答案与分析以及授课计划和学时分配表,配套资源可以登录清华大学出版社官方网站(www.tup.com.cn)下载或与作者联系索取,作者电子邮箱为dongfuguo2005@126.com。

由于时间仓促,作者水平有限,书中难免出现错误和不足之处,还请同行指正并通过电子邮件等方式进行反馈,作者将不定期在QQ空间和微信发布及更新勘误表。

感谢

首先感谢父母对我的养育之恩,在当年那么艰苦的条件下还坚决支持我读书,而没有让我像其他同龄孩子一样辍学。感谢姐姐、姐夫多年来对我的爱护以及在老家对父母的照顾;感谢善良的弟弟、弟媳在老家对父母的照顾,正是有了你们,我才能在远离家乡的城市安心工作。感谢我的妻子在生活中对我的大力支持,也感谢懂事的小女儿在我工作的时候能够在旁边安静地读书而尽量不打扰我,并在定稿前帮我检查出了几个错别字和一个错误的序号。

感谢本书定稿前的第一批读者,山东工商学院数字媒体技术专业(服务外包方向)2012级的毛玉婷同学和巩晓同学,认真阅读了全书并检查其中的错别字。当然,也感谢每一位读者,感谢您在茫茫书海中选择了本书,并衷心祝愿您能够从本书中受益,学到您需要的知识!

本书的出版获2014年山东省普通高校应用型人才培养专业发展支持计划项目资助。我校专业共建合作伙伴——浪潮优派科技教育有限公司总裁邵长臣先生审阅了全书,并提出很多宝贵的意见,在此致以诚挚的谢意。本书在编写出版过程中得到了清华大学出版社的大力支持和帮助,在此表示衷心的感谢。

董付国定稿于山东烟台

2015年5月