《Python程序设计基础与应用》是一本系统介绍Python程序开发与应用的教程。本书共15章,主要包括Python编程基础(1~11章)和Python开发应用(12~15章)两部分内容,编程基础部分通过众多案例对Python程序设计的概念加以解释,开发应用部分介绍了tkinter编程、网络爬虫、数据分析和数据可视化4个方面的Python核心应用。本书全部代码适用于Python 3.5、Python 3.6以及更高版本。
本书可以作为非计算机专业研究生、本科、专科程序设计课程教材,也可作为计算机专业本、专科程序设计基础课程教材,以及Python爱好者自学用书。
《Python程序设计基础与应用》配有教学资源(包括PPT、源码、大纲、教案、习题答案),需要的教师可登录www.cmpedu.com免费注册,审核通过后下载,或联系编辑索取(QQ:2966938356,电话:010-88379739)。
知名Python教育者董付国老师新作
《Python程序设计基础与应用》内容言简意赅,案例丰富,内容涵盖python编程基础及核心应用,配套资源超全(包括教学PPT、源码、大纲、教案、习题答案),部分内容全彩呈现。
《Python程序设计基础与应用》全部代码适用于Python 3.5、Python 3.6以及更高版本。
Python入门,有这一本就够了!
前 言
Python是由Guido van Rossum于1991年推出的第一个公开发行版本,迅速得到了各行业人士的青睐。经过20多年的发展,已经渗透到统计分析、移动终端开发、科学计算可视化、系统安全、逆向工程、软件测试与软件分析、图形图像处理、人工智能、机器学习、深度学习、游戏设计与策划、网站开发、数据爬取与大数据处理、密码学、系统运维、音乐编程、影视特效制作、计算机辅助教育、医药辅助设计、天文信息处理、化学与生物信息处理、神经科学与心理学、自然语言处理、电子电路设计、电子取证、树莓派等几乎所有专业和领域,在黑客领域更是多年来一直拥有霸主地位。与此同时,Python语言在各大编程语言排行榜上的位次也是逐年上升,被TIOBE网站评为2010年年度语言;在IEEESpectrum 2017编程语言排行榜上则名列榜首,排在了第一位。
Python是一门免费、开源、跨平台的高级动态编程语言,支持命令式编程、函数式编程,完全支持面向对象程序设计,拥有大量功能强大的内置对象、标准库,以及涉及各行业领域的扩展库,使得各领域的工程师、科研人员、策划人员和管理人员能够快速实现和验证自己的思路、创意或者推测,还有更多人喜欢用Python写个小脚本来完成自己工作中的一些小任务。在有些编程语言中需要编写大量代码才能实现的功能,在Python中只需要几行代码,大幅度减少了代码量,更加容易维护。Python用户只需要把主要精力放在业务逻辑的设计与实现上,在开发速度和运行效率之间达到了完美的平衡,其精妙之处令人击节赞叹。
一个好的Python程序不仅是正确的,更是简洁的、直观的、漂亮的、优雅的、方便人们阅读的,整个代码处处体现着美,让人赏心悦目。Python代码对布局要求非常严格,尤其是使用缩进来体现代码的逻辑关系,这一点硬性要求非常有利于学习者和程序员养成一个良好的、严谨的习惯。除了能够快速解决问题之外,代码布局要求严格也是Python被广泛选作教学语言的重要原因。
早在多年前Python就已经成为卡耐基梅隆大学、麻省理工学院、加州大学伯克利分校、哈佛大学、多伦多大学等国外很多大学计算机专业或非计算机专业的程序设计入门教学语言。近几年来国内有几百所高等院校的多个专业陆续开设了Python程序设计有关课程,并且这个数量还在持续快速增加。目前来看,选择使用Python作为程序设计入门教学语言或者作为各专业扩展课程,无疑是一个非常明智的选择。
内容组织与阅读建议
本书共15章,主要包括Python编程基础(1~11章)和Python开发应用(12~15章)两部分内容,编程基础部分通过众多案例对Python程序设计的概念加以解释,开发应用部分介绍了tkinter编程、网络爬虫、数据分析和数据可视化4个方面的Python核心应用。全部代码适用于Python 3.5、Python 3.6以及更高版本。
第1章 概述。简单介绍Python语言与版本、编程规范,扩展库安装方法,以及标准库对象与扩展库对象的导入与使用。
第2章 内置对象运算符、表达式、关键字。讲解Python常用内置对象、运算符与表达式、常用内置函数和Python关键字。
第3章 Python序列结构。讲解列表、列表推导式、切片操作,元组与生成器表达式,字典,集合和序列解包。
第4章 选择结构与循环结构。讲解条件表达式的常见形式,单分支、双分支、多分支选择结构以及嵌套的选择结构,for循环与while循环,break与continue语句。
第5章 函数。讲解函数定义与调用语法,不同类型的函数参数,参数传递的序列解包,变量作用域,lambda表达式,生成器函数。
第6章 面向对象程序设计。讲解类的定义与使用,数据成员与成员方法、属性,继承,特殊方法与运算符重载。
第7章 字符串。讲解字符串编码格式,转义字符与原始字符串,字符串格式化的不同形式,字符串常用方法与操作,字符串常量,以及扩展库jieba和pypinyin的用法等。
第8章 正则表达式。讲解正则表达式语法,正则表达式模块re的用法和match对象等。
第9章 文件内容操作。讲解文件操作基本知识,文本文件内容操作方法,常用的二进制文件读写模块,以及Excel、Word等常见类型文件的操作。
第10章 文件与文件夹操作。讲解os、os.path与shutil这3个模块的用法,以及递归遍历并处理文件夹的原理。
第11章 异常处理结构。介绍异常的常见表现形式,常用异常处理结构,以及断言语句与上下文管理语句。
第12章 tkinter编程案例。通过模拟用户登录、选择类组件应用、简单画图程序、电子时钟、屏幕颜色选择器、抽奖式提问程序、简易计算器程序、定时自动关闭的窗口等案例演示Python标准库tkinter的用法。
第13章 网络爬虫入门与应用。介绍HTML和JavaScript基础,标准库urllib以及扩展库scrapy、BeautifulSoup4、requests和selenium在网络爬虫程序设计中的应用。
第14章 Python数据分析与处理。讲解使用pandas库进行数据分析的基本操作,数据分析案例与pandas的应用。
第15章 数据可视化。介绍使用Python扩展库matplotlib进行数据可视化相关的技术,包括折线图、散点图、饼状图、柱状图和雷达图的绘制,以及坐标轴、图例等设置。
本书适用读者
本书可以作为(但不限于):
? 非计算机专业研究生、本科、专科程序设计课程教材。
? 计算机专业程序设计基础课程教材。
? Python爱好者自学用书。
配套资源
本书为选用教材的老师提供教学PPT、源码、大纲、教案、习题答案等全套教学资源,可通过微信公众号Python小屋获取,或发送邮件至dongfuguo2005@126.com与作者联系获取;也可通过机械工业出版社相应渠道获取(见版权页内容简介)。
致谢
首先感谢父母的养育之恩,在当年那么艰苦的条件下还坚决支持我读书,没有让我像其他同龄的孩子一样辍学。感谢姐姐、姐夫多年来对我的爱护以及在老家对父母的照顾,感谢善良的弟弟、弟媳在老家对父母的照顾。当然,最应该感谢的是妻子和孩子对我这个工作狂人的理解和体谅。
感谢每一位读者,感谢您在茫茫书海中选择了本书,衷心祝愿您能够从本书中受益,学到真正需要的知识。同时也期待每一位读者的热心反馈,随时欢迎您指出书中的不足,并通过微信公众号Python小屋或电子邮箱dongfuguo2005@126.com与作者沟通和交流。
董付国 于山东烟台
2018年3月
目 录
前言
第1章 Python概述1
1.1 Python语言简介1
1.2 Python版本简介2
1.3 Python开发环境安装与配置2
1.3.1 IDLE2
1.3.2 Anaconda33
1.4 Python编程规范5
1.5 扩展库安装方法6
1.6 标准库与扩展库中对象的导入与使用7
1.6.1 import 模块名 [as 别名]7
1.6.2 from 模块名 import 对象名[ as 别名]7
1.6.3 from 模块名 import *8
1.7 Python程序的__name__属性8
习题9
第2章 内置对象、运算符、表达式、关键字10
2.1 Python常用内置对象10
2.1.1 常量与变量11
2.1.2 数字类型12
2.1.3 字符串13
2.1.4 列表、元组、字典、集合14
2.2 Python运算符与表达式14
2.2.1 算术运算符15
2.2.2 关系运算符16
2.2.3 成员测试运算符17
2.2.4 集合运算符17
2.2.5 逻辑运算符18
2.2.6 补充说明18
2.3 Python常用内置函数用法18
2.3.1 类型转换与判断20
2.3.2 最值与求和22
2.3.3 基本输入/输出23
2.3.4 排序与逆序23
2.3.5 枚举与迭代24
2.3.6 map()函数、reduce()函数、filter()函数24
2.3.7 range()函数26
2.3.8 zip()函数27
2.4 Python关键字简要说明28
习题29
第3章 Python序列结构30
3.1 Python序列概述30
3.2 列表31
3.2.1 列表创建与删除31
3.2.2 列表元素访问32
3.2.3 列表常用方法32
3.2.4 列表对象支持的运算符34
3.2.5 内置函数对列表的操作35
3.2.6 列表推导式35
3.2.7 切片38
3.3 元组与生成器表达式39
3.3.1 元组创建与元素访问39
3.3.2 元组与列表的异同点40
3.3.3 生成器表达式40
3.4 字典41
3.4.1 字典创建与删除42
3.4.2 字典元素的访问42
3.4.3 元素的添加、修改与删除43
3.4.4 字典应用案例44
3.5 集合45
3.5.1 集合对象的创建与删除45
3.5.2 集合操作与运算46
3.5.3 集合应用案例47
3.6 序列解包50
习题51
第4章 选择结构与循环结构53
4.1 条件表达式53
4.2 选择结构55
4.2.1 单分支选择结构55
4.2.2 双分支选择结构56
4.2.3 多分支选择结构57
4.2.4 选择结构的嵌套58
4.3 循环结构58
4.3.1 for循环与while循环58
4.3.2 break与continue语句59
4.4 综合案例解析60
习题65
第5章 函数67
5.1 函数定义与使用67
5.1.1 基本语法67
5.1.2 递归函数68
5.2 函数参数69
5.2.1 位置参数70
5.2.2 默认值参数70
5.2.3 关键参数70
5.2.4 可变长度参数71
5.2.5 传递参数时的序列解包71
5.3 变量作用域73
5.4 lambda表达式74
5.5 生成器函数74
5.6 综合案例解析75
习题87
第6章 面向对象程序设计88
6.1 类的定义与使用88
6.2 数据成员与成员方法89
6.2.1 私有成员与公有成员89
6.2.2 数据成员90
6.2.3 成员方法90
6.2.4 属性92
6.3 继承94
6.4 特殊方法96
6.5 综合案例解析98
习题105
第7章 字符串106
7.1 字符串概述106
7.2 字符串编码格式106
7.3 转义字符与原始字符串107
7.4 字符串格式化109
7.4.1 使用%符号进行格式化109
7.4.2 使用format()方法进行字符串格式化110
7.4.3 格式化的字符串常量111
7.5 字符串常用方法与操作111
7.5.1 find()、rfind()、index()、rindex()、count()111
7.5.2 split()、rsplit()、partition()、rpartition()112
7.5.3 join()113
7.5.4 lower()、upper()、capitalize()、title()、swapcase()114
7.5.5 replace()、maketrans()、translate()114
7.5.6 strip()、rstrip()、lstrip()115
7.5.7 startswith()、endswith()116
7.5.8 isalnum()、isalpha()、isdigit()、isspace()、isupper()、islower()116
7.5.9 center()、ljust()、rjust()116
7.5.10 字符串支持的运算符117
7.5.11 适用于字符串的内置函数118
7.5.12 字符串切片119
7.6 字符串常量119
7.7 中英文分词119
7.8 汉字到拼音的转换120
7.9 综合案例解析121
习题123
第8章 正则表达式124
8.1 正则表达式语法124
8.1.1 正则表达式基本语法124
8.1.2 正则表达式扩展语法126
8.2 正则表达式模块re127
8.3 match对象128
8.4 综合案例解析129
习题131
第9章 文件内容操作132
9.1 文件的概念及分类132
9.2 文件操作基本知识133
9.2.1 内置函数open()133
9.2.2 文件对象常用方法134
9.2.3 上下文管理语句with134
9.3 文本文件内容操作案例135
9.4 二进制文件操作136
9.4.1 使用pickle模块读写二进制文件136
9.4.2 使用struct模块读写二进制文件137
9.4.3 使用shelve模块操作二进制文件138
9.4.4 使用marshal模块操作二进制文件138
9.5 Excel与Word文件操作案例139
习题143
第10章 文件与文件夹操作144
10.1 os模块144
10.2 os.path模块146
10.3 shutil模块147
10.4 综合案例解析148
习题150
第11章 异常处理结构151
11.1 异常的概念及常见表现形式151
11.2 常用异常处理结构152
11.2.1 try…except…结构152
11.2.2 try…except…else…结构153
11.2.3 try…except…finally…154
11.2