前言
Python语言由Guido van Rossum于1991年推出了第一个公开发行版本,之后迅速得到了各行业人士的青睐。经过20多年的发展,Python语言已经渗透到统计分析、移动终端开发、科学计算可视化、系统安全、逆向工程、软件测试与软件分析、图形图像处理、人工智能、机器学习、深度学习等几乎所有专业和领域,在黑客领域更是多年来一直拥有霸主地位。与此同时,Python语言在各大编程语言排行榜上的位次也是逐年上升的,被TIOBE网站评为2010年年度语言;在IEEE Spectrum 2017编程语言排行榜上名列榜首。
Python是一门免费、开源、跨平台的高级动态编程语言,支持命令式编程、函数式编程,完全支持面向对象程序设计,拥有大量功能强大的内置对象、标准库,以及涉及各行业领域的扩展库,使得各领域的工程师、科研人员、策划人员和管理人员能够快速实现和验证自己的思路、创意或者推测,还有更多人喜欢用Python写个小脚本来完成自己工作中的一些小任务。在有些编程语言中需要编写大量代码才能实现的功能,在Python中只需要几行代码,大幅度减少了代码量,更加容易维护。Python用户只需要把主要精力放在业务逻辑的设计与实现上,在开发速度和运行效率之间达到了完美的平衡,其精妙之处令人击节赞叹。
一个好的Python程序不仅是正确的,更应该是简洁、直观、漂亮、优雅、方便人们阅读的,整个代码处处体现着美,让人赏心悦目。Python代码对布局要求非常严格,尤其是使用缩进来体现代码的逻辑关系,这一点硬性要求非常有利于学习者和程序员养成一个良好、严谨的习惯。除了能够快速解决问题之外,代码布局要求严格也是Python被广泛选作教学语言的重要原因。
早在多年前Python就已经成为卡耐基梅隆大学、麻省理工学院、加州大学伯克利分校、哈佛大学、多伦多大学等国外很多大学计算机专业或非计算机专业的程序设计入门教学语言。近几年来国内有几百所高等院校的多个专业陆续开设了Python程序设计有关课程,并且这个数量还在持续快速增加。目前来看,选择使用Python作为程序设计入门教学语言或者作为各专业扩展课程,无疑是一个非常明智的选择。
内容组织与阅读建议
本书共14个项目和若干子任务,主要包括Python编程基础、网络爬虫、数据分析和数据可视化这四大部分内容,全部代码适用于Python 3.5、Python 3.6、Python 3.7以及更高版本。
项目1 认识Python。简单介绍Python语言与版本、安装与配置Python开发环境、Python编码规范、扩展库安装方法以及标准库对象与扩展库对象的导入。
项目2 使用内置对象和运算符。讲解Python常用内置对象、运算符与表达式、常用内置函数、Python关键字。
项目3 使用Python序列结构。讲解序列、列表、元组与生成器表达式、字典、集合、序列解包。
项目4 使用程序控制结构。讲解条件表达式的常见形式,单分支、双分支、多分支选择结构以及嵌套的选择结构;循环结构,包括for循环与while循环,break与continue语句;以及异常处理结构。
项目5 设计和使用自定义函数。讲解函数定义与调用语法、不同类型的函数参数、参数传递的序列解包、变量作用域、lambda表达式、生成器函数。
项目6 面向对象程序设计基础。讲解类的定义与使用、数据成员与成员方法、属性和继承、特殊方法。
项目7 使用字符串。讲解字符串编码格式、转义字符与原始字符串、字符串格式化的不同形式、字符串常用方法、字符串常量、中英文分词、汉字到拼音的转换。
项目8 使用正则表达式。讲解正则表达式语法、正则表达式模块re的用法。
项目9 读写文件内容。讲解文件操作基本知识、文本文件内容操作以及Excel与Word等常见类型文件的操作。
项目10 文件与文件夹操作。讲解os、os.path与shutil这3个模块的用法,以及递归遍历文件夹和按广度优先遍历文件夹的原理。
项目11 网络爬虫入门与应用。讲解HTML、JavaScript基础以及urllib、scrapy、BeautifulSoup、requests、selenium在网络爬虫程序中的应用。
项目12 使用numpy实现数组与矩阵运算。讲解numpy的数组和矩阵运算。
项目13 使用pandas分析与处理数据。讲解pandas常用操作、pandas结合matplotlib进行数据可视化、pandas的应用。
项目14 使用matplotlib进行数据可视化。介绍使用Python扩展库matplotlib进行数据可视化相关的技术,包括折线图、散点图、饼状图、柱状图、三维图的绘制,以及切分绘图区域、设置坐标轴和图例等内容。
本书适用读者
本书可以作为(但不限于):本科、专科、高职院校非计算机专业程序设计课程用教材,计算机专业程序设计基础课程教材,Python爱好者自学用书。
配套资源
本书提供教学PPT、源代码、大纲、习题答案等全套教学资源,可通过微信公众号“Python小屋”获取,或发送邮件至dongfuguo2005@126.com与作者联系获取;也可通过机械工业出版社相应渠道获取(见版权页内容简介)。
致谢
首先感谢父母的养育之恩,在当年那么艰苦的条件下还坚决支持我读书,没有让我像其他同龄的孩子一样辍学。感谢姐姐、姐夫多年来对我的爱护以及在老家对父母的照顾,感谢善良的弟弟、弟媳在老家对父母的照顾。当然,最应该感谢的是妻子和孩子对我这个工作狂人的理解和体谅。
感谢每一位读者,感谢您在茫茫书海中选择了本书,衷心祝愿您能够从本书中受益,学到真正需要的知识。同时也期待每一位读者的热心反馈,随时欢迎您指出书中的不足,并通过微信公众号“Python小屋”或电子邮箱dongfuguo2005@126.com与作者沟通和交流。
董付国 于山东烟台
2019年5月