图书前言

前    言

  根据TIOBE网站的最新排名,Python已超越C#,与Java、C、C++一起,成为全球前四大流行语言。IEEE发布的2017年编程语言排行榜则将Python排在榜首。

  Python也是美国大学选用最多的语言,著名的哈佛大学、麻省理工学院、加州大学伯克利分校、卡耐基·梅隆大学等,已将Python语言作为计算机专业和非计算机专业的入门语言。Python崇尚简、短、精、小,其应用几乎无限制,各方面地位超然。Python在软件质量控制、提升开发效率/可移植性、组件集成、丰富的库支持等方面,均处于先进地位。更重要的是,Python简单易学、免费开源、可移植、可扩展、可嵌入。此外,Python还支持面向对象,而且它的面向对象甚至比Java和C#.NET更彻底。

  Python是高“性价比”的语言。它合理地结合了高性能与低成本(代码量小、维护成本低、编程效率高)的特色,致力于用最简洁、最简短的代码完成任务。

  完成同样的业务逻辑时,在其他编程语言中可能需要编写大量的代码,而在Python中只需要调用内建函数或内建对象的方法即可实现,甚至可以直接调用第三方扩展库来完成。一般情况下,Python的代码量仅仅是Java的1/5,足见Python编程的高效。

  Python是应用“无限制”的语言。它被广泛应用于后端开发、游戏开发、网站开发、科学计算、大数据分析、云计算、图形开发等领域。美国中央情报局CIA网站、世界上最大的视频网站YouTube、国内最大的问答社区“知乎”等,都是用Python开发的,搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝、土豆、新浪、果壳等著名的IT公司都在使用Python完成各种各样的任务。

  Python是一种代表“简单主义”思想的语言。它的设计哲学是优雅、明确、简单。阅读一个良好的Python程序,感觉就像是在阅读英语,尽管这个英语的要求非常严格!Python的这种伪代码本质,是它最大的优点之一。

  Python是“高层次”的语言。它内建优异的数据结构,很容易表达各种常见的数据结构,不再需要定义指针、分配内存,编程也简单了许多,也无须考虑程序对内存的使用等底层细节,把许多机器层面上的细节隐藏起来,凸显出逻辑层面的编程思考。

  Python是免费、开源、跨平台的高级动态编程语言。它支持命令式编程、函数式编程,全面支持面向对象编程;它语法简洁、清晰,拥有功能丰富而强大的标准库和大量的第三方扩展库;它使用户能够专注于解决问题,而不是去搞明白语言本身,这是它开发效率高的根本原因。

  由此可见,用“出类拔萃”来形容Python并不为过。Python以如此众多的优势,吸引着无数程序员投身于其中。网上的一句流行语颇耐人寻味:“人生苦短,我用Python”。

  在国外,“Python热”正在逐步升温,涉及方方面面的领域;在国内,越来越多的大学已将Python列入本科生的必修课程或选修课程,越来越多的IT企业将开发语言瞄向了Python。可以预见的是,国内的“Python热”即将掀起,本书的出版迎合了这一趋势。

  本书的内容组织说明如下。

  为了拓展应用范围,充分利用现有资源,对于Python程序员而言,熟练运用第三方扩展库是非常重要的。使用成熟的扩展库,可以帮助我们快速地实现业务逻辑,达到事半功倍的效果。但是,第三方扩展库的理解和运用,无疑要建立在对Python基础知识和基本数据结构熟练掌握的基础上。因此,本书兼顾“基础”与“应用”两个方面,前6章把重点放在基础上,通过大量的经典例题,讲解Python语言的核心内容;后6章则把重点放在应用上,通过大量的案例,介绍Python在实际开发中的应用。关于不同应用领域的第三方扩展库,读者可以参考附录B,并结合自己的专业领域查阅相关文档。

  本书共分12章,主要内容组织如下。

  第1章:Python程序设计入门。介绍什么是Python,学习Python的原因,Python的发展历史,多种平台下Python环境的搭建,使用集成开发环境IDLE来帮助学习Python,Python常用的开发工具,最后给出本书的第一个Python程序。

  第2章:Python语言基础。讲解Python的语法和句法,Python的数据类型,Python的常量与变量,Python的运算符与优先级,Python的数值类型,Python的字符串类型,Python的高级数据类型(列表、元组、字典、集合),最后介绍正则表达式及其应用。

  第3章:Python流程控制。讲解if语句和for语句的基本格式、执行规则、嵌套用法,range()函数在循环中的使用方法,while语句的基本格式、执行规则、嵌套用法,最后介绍break、continue、pass等关键字在循环中的使用方法。

  第4章:函数模块。讲解Python代码编写规范和风格,函数的定义与调用,函数参数的传递,Python变量作用域,函数与递归,迭代器与生成器,Python自定义模块,输入输出语句的基本格式及执行规则,匿名函数的定义与使用。

  第5章:文件与异常处理。介绍文件和文件对象,讲解基于os模块的文件操作方法,基于shutil模块的文件操作方法,文本文件、CSV文件、Excel文件的基本操作,HTML、XML文档的基本操作,最后介绍Python的异常处理机制及Python程序的调试方法。

  第6章:面向对象编程。介绍面向对象技术,讲解类与对象的定义和使用,类的属性与方法,类的作用域与命名空间,类的单继承和多继承,最后以数个典型实例讲解面向对象程序设计的应用。

  第7章:数据库编程。讲解数据库技术基础,SQLite和MySQL数据库的数据类型、基本操作,使用Python操作SQLite和MySQL数据库的方法。

  第8章:Web开发。讲解Web应用的工作方式,MVC设计模式,CGI通用网关接口,使用模板快速生成Web页面。

  第9章:使用Python进行数据分析。讲解使用Python进行数据挖掘的原因,介绍NumPy库、SciPy库、Matplotlib库和Pandas库,最后通过数理统计中的数据离散度分析和数据挖掘中的离群点分析等典型案例,介绍Python在数据可视化方面的应用。

  第10章:GUI编程和用户界面。讲解GUI界面的概念,Tkinter模块及其各种组件,网格布局管理器,最后介绍GUI编程。

  第11章:多进程与多线程。介绍多进程与多线程的概念,讲解多进程与多线程的区别,进程间通信技术,进程池,最后介绍thread锁。

  第12章:网络编程。讲解计算机网络基础知识,Socket通信技术,urllib库及其使用,端口扫描器,最后以一个简单的网络爬虫为例,对前几章的知识进行综合应用。

   本书最大的特点是内容紧凑、案例丰富、学以致用;程序输出原滋原味,既有正确输出的结果,又有错误输出的提示,让读者既能从“正”的方面学到经验,又能从“负”的方面吸取教训,使经验与教训兼而得之。全书总体内容按照先基础、后应用的顺序安排。前6章为基础篇,其内容循序渐进;后6章为应用篇,其内容自成体系;每个知识点按照先讲解知识、后给出案例的顺序编写;每个软件都配有安装过程截图,每道例题都配有运行结果截图,一目了然。

  本书作者具有近30年的程序设计教学经验,讲授过多门编程语言课程,并编写过大量的应用程序,青年时期曾参加过市级讲课大赛并取得优异成绩,特别是在美国访学期间,用Python语言开发过较大规模的软件。在内容的组织和安排上,本书结合了作者多年教学与科研中积累的经验,并巧妙地将其糅合到相应的章节中。

  本书以目前流行的Python 3为基础,适当兼顾Python 2.x,既讲解Python的基础知识,又适当介绍Python在各个方面的应用,因而,可以满足不同层次读者的需要。

  本书可以作为高等院校计算机或非计算机专业程序设计语言公共课或选修课教材,基础教学建议选取前6章内容,推荐36学时;“基础+应用”教学建议按“6+n”方式选取教学内容,后面6章可根据专业需要择其一二,或全部选用,推荐42~64学时。建议采用边讲边练的教学模式。本书可以作为具有一定Python基础的读者进一步学习的资料,可供参加各类计算机考试的人员学习和参考,也可以作为从事数据分析、网络运维、数据库开发、Web开发、界面设计、软件开发等工作的工程师的参考资料。对于打算利用业余时间快乐地学习一门编程语言并编写一些小程序来自我娱乐的读者,本书是首选的学习资料。本书亦适合对编程有着浓厚兴趣的中小学生作为课外阅读资料。

  本书由天津工业大学杨连贺、董禹龙、房超主编,该校毕璐琪、梁润宇及天津市电子计算机研究所杨阳、湖南应用技术学院彭进香为副主编。限于作者的经验和水平,书中的错误与不足之处在所难免,希望得到专家和读者的批评指正。

  本书编写过程中,天津工业大学计算机科学与软件学院硕士研究生张海潮和焦翠姣在程序调试方面做了很多工作,在此一并向她们表示衷心的感谢。

  

  

  

  作   者        

  2018年5月于天津工业大学