章Python语言概述和开发环境1
1.1Python简介2
1.1.1Python简史2
1.1.2Python的特点3
1.2Python程序运行机制3
1.3开发Python的准备4
1.3.1在Windows上安装Python4
1.3.2在Linux上安装Python6
1.3.3在Mac OS X上安装Python7
1.4个Python程序7
1.4.1编辑Python源程序7
1.4.2使用IDLE运行Python程序8
1.4.3使用命令行工具运行Python程序8
1.5交互式解释器10
1.6本章小结11
本章练习11
第2章变量和简单类型12
2.1单行注释和多行注释13
2.2变量14
2.2.1Python是弱类型语言14
2.2.2使用print函数输出变量15
2.2.3变量的命名规则16
2.2.4Python的关键字和内置函数17
2.3数值类型18
2.3.1整型18
2.3.2浮点型20
2.3.3复数20
2.4字符串入门21
2.4.1字符串和转义字符21
2.4.2拼接字符串22
2.4.3repr和字符串22
2.4.4使用input和raw_input获取用户输入23
2.4.5长字符串24
2.4.6原始字符串24
2.4.7字节串(bytes)25
2.5深入使用字符串27
2.5.1转义字符27
2.5.2字符串格式化27
2.5.3序列相关方法29
2.5.4大小写相关方法30
2.5.5删除空白32
2.5.6查找、替换相关方法32
2.5.7分割、连接方法34
2.6运算符34
2.6.1赋值运算符34
2.6.2算术运算符35
2.6.3位运算符37
2.6.4扩展后的赋值运算符40
2.6.5索引运算符40
2.6.6比较运算符与bool类型40
2.6.7逻辑运算符41
2.6.8三目运算符42
2.6.9in运算符44
2.6.10运算符的结合性和优先级44
2.7本章小结45
本章练习45
第3章列表、元组和字典46
3.1序列简介47
3.1.1Python的序列47
3.1.2创建列表和元组47
3.2列表和元组的通用用法48
3.2.1通过索引使用元素48
3.2.2子序列48
3.2.3加法49
3.2.4乘法49
3.2.5in运算符50
3.2.6长度、优选值和最小值50
3.2.7序列封包和序列解包51
3.3使用列表52
3.3.1创建列表52
3.3.2增加列表元素53
3.3.3删除列表元素54
3.3.4修改列表元素55
3.3.5列表的其他常用方法56
3.4使用字典58
3.4.1字典入门58
3.4.2创建字典58
3.4.3字典的基本用法59
3.4.4字典的常用方法60
3.4.5使用字典格式化字符串63
3.5本章小结63
本章练习64
第4章流程控制65
4.1顺序结构66
4.2if分支结构66
4.2.1不要忘记缩进67
4.2.2不要随意缩进69
4.2.3不要遗忘冒号70
4.2.4if条件的类型70
4.2.5if分支的逻辑错误71
4.2.6if表达式72
4.2.7pass语句72
4.3断言73
4.4循环结构73
4.4.1while循环73
4.4.2使用while循环遍历列表和元组74
4.4.3for-in循环75
4.4.4使用for-in循环遍历列表和元组76
4.4.5使用for-in循环遍历字典77
4.4.6循环使用else78
4.4.7嵌套循环79
4.4.8for表达式80
4.4.9常用工具函数82
4.5控制循环结构83
4.5.1使用break结束循环83
4.5.2使用continue忽略本次循环的剩下语句85
4.5.3使用return结束方法85
4.6牛刀小试86
4.6.1数字转人民币读法86
4.6.2绕圈圈87
4.6.3控制台五子棋89
4.6.4控制台超市系统90
4.7本章小结94
本章练习94
第5章函数和lambda表达式97
5.1函数入门98
5.1.1理解函数98
5.1.2定义函数和调用函数99
5.1.3为函数提供文档100
5.1.4多个返回值100
5.1.5递归函数101
5.2函数的参数102
5.2.1关键字(keyword)参数102
5.2.2参数默认值103
5.2.3参数收集(个数可变的参数)105
5.2.4逆向参数收集106
5.2.5函数的参数传递机制107
5.2.6变量作用域111
5.3局部函数113
5.4函数的不错内容114
5.4.1使用函数变量115
5.4.2使用函数作为函数形参115
5.4.3使用函数作为返回值116
5.5局部函数与lambda表达式117
5.5.1回顾局部函数117
5.5.2使用lambda表达式代替局部函数118
5.6本章小结119
本章练习119
第6章类和对象120
6.1类和对象121
6.1.1定义类121
6.1.2对象的产生和使用122
6.1.3对象的产生和使用123
6.1.4实例方法和自动绑定self124
6.2方法126
6.2.1类也能调用实例方法126
6.2.2类方法与静态方法128
6.2.3@函数装饰器128
6.2.4再论类命名空间131
6.3成员变量131
6.3.1类变量和实例变量131
6.3.2使用property函数定义属性134
6.4隐藏和封装137
6.5类的继承139
6.5.1继承的语法139
6.5.2关于多继承140
6.5.3重写父类的方法140
6.5.4使用未绑定方法调用被重写的方法141
6.5.5使用super函数调用父类的构造方法142
6.6Python的动态性143
6.6.1动态属性与__slots__144
6.6.2使用type()函数定义类145
6.6.3使用metaclass146
6.7多态147
6.7.1多态性147
6.7.2检查类型149
6.8枚举类150
6.8.1枚举入门150
6.8.2枚举的构造器152
6.9本章小结153
本章练习153
第7章异常处理154
7.1异常概述155
7.2异常处理机制156
7.2.1使用try...except捕获异常156
7.2.2异常类的继承体系157
7.2.3多异常捕获159
7.2.4访问异常信息160
7.2.5else块161
7.2.6使用finally回收资源163
7.2.7异常处理嵌套165
7.3使用raise引发异常165
7.3.1引发异常165
7.3.2自定义异常类166
7.3.3except和raise同时使用167
7.3.4raise不需要参数168
7.4Python的异常传播轨迹168
7.5异常处理规则170
7.5.1不要过度使用异常171
7.5.2不要使用过于庞大的try块172
7.5.3不要忽略捕获到的异常172
7.6本章小结172
本章练习173
第8章Python类的特殊方法174
8.1常见的特殊方法175
8.1.1重写__repr__方法175
8.1.2析构方法:__del__176
8.1.3__dir__方法177
8.1.4__dict__属性178
8.1.5__getattr__、__setattr__等178
8.2与反射相关的属性和方法180
8.2.1动态操作属性180
8.2.2__call__属性182
8.3与序列相关的特殊方法183
8.3.1序列相关方法183
8.3.2实现迭代器185
8.3.3扩展列表、元组和字典186
8.4生成器186
8.4.1创建生成器187
8.4.2生成器的方法189
8.5运算符重载的特殊方法191
8.5.1与数值运算符相关的特殊方法191
8.5.2与比较运算符相关的特殊方法194
8.5.3与单目运算符相关的特殊方法195
8.5.4与类型转换相关的特殊方法196
8.5.5与常见的内建函数相关的特殊方法197
8.6本章小结198
本章练习198
第9章模块和包199
9.1模块化编程200
9.1.1导入模块的语法200
9.1.2定义模块203
9.1.3为模块编写说明文档203
9.1.4为模块编写测试代码204
9.2加载模块205
9.2.1使用环境变量205
9.2.2默认的模块加载路径208
9.2.3导入模块的本质209
9.2.4模块的__all__变量211
9.3使用包212
9.3.1什么是包212
9.3.2定义包212
9.3.3导入包内成员214
9.4查看模块内容216
9.4.1模块包含什么216
9.4.2使用__doc__属性查看文档217
9.4.3使用__file__属性查看模块的源文件路径218
9.5本章小结218
本章练习218
0章常见模块219
10.1sys220
10.1.1获取运行参数222
10.1.2动态修改模块加载路径223
10.2os模块223
10.3random225
10.4time227
10.5JSON支持230
10.5.1JSON的基本知识230
10.5.2Python的JSON支持232
10.6正则表达式236
10.6.1Python的正则表达式支持236
10.6.2正则表达式旗标241
10.6.3创建正则表达式242
10.6.4子表达式244
10.6.5贪婪模式与勉强模式246
10.7容器相关类247
10.7.1set和frozenset248
10.7.2双端队列(deque)250
10.7.3Python的堆操作253
10.8collections下的容器支持255
10.8.1ChainMap对象255
10.8.2Counter对象257
10.8.3defaultdict对象260
10.8.4namedtuple工厂函数261
10.8.5OrderedDict对象262
10.9函数相关模块264
10.9.1itertools模块的功能函数264
10.9.2functools模块的功能函数267
10.10本章小结273
本章练习273
1章图形界面编程275
11.1Python的GUI库276
11.2Tkinter GUI编程的组件277
11.3布局管理器283
11.3.1Pack布局管理器283
11.3.2Grid布局管理器285
11.3.3Place布局管理器287
11.4事件处理288
11.4.1简单的事件处理289
11.4.2事件绑定289
11.5Tkinter常用组件293
11.5.1使用ttk组件293
11.5.2Variable类294
11.5.3使用compound选项295
11.5.4Entry和Text组件297
11.5.5Radiobutton和Checkbutton组件300
11.5.6Listbox和Combobox组件303
11.5.7Spinbox组件308
11.5.8Scale和LabeledScale组件309
11.5.9Labelframe组件312
11.5.10Panedwindow组件314
11.5.11OptionMenu组件316
11.6对话框(Dialog)318
11.6.1普通对话框318
11.6.2自定义模式、非模式对话框320
11.6.3输入对话框322
11.6.4文件对话框324
11.6.5颜色选择对话框326
11.6.6消息框327
11.7菜单330
11.7.1窗口菜单330
11.7.2右键菜单334
11.8在Canvas中绘图336
11.8.1Tkinter Canvas的绘制功能336
11.8.2操作图形项的标签343
11.8.3操作图形项345
11.8.4为图形项绑定事件349
11.8.5绘制动画354
11.9本章小结357
本章练习357
2章文件I/O358
12.1使用pathlib模块操作目录359
12.1.1PurePath的基本功能360
12.1.2PurePath的属性和方法362
12.1.3Path的功能和用法363
12.2使用os.path操作目录365
12.3使用fnmatch处理文件名匹配366
12.4打开文件367
12.4.1文件打开模式367
12.4.2缓冲368
12.5读取文件369
12.5.1按字节或字符读取369
12.5.2按行读取371
12.5.3使用fileinput读取多个输入流371
12.5.4文件迭代器372
12.5.5管道输入373
12.5.6使用with语句374
12.5.7使用linecache随机读取指定行376
12.6写文件376
12.6.1文件指针的概念376
12.6.2输出内容377
12.7os模块的文件和目录函数378
12.7.1与目录相关的函数379
12.7.2与权限相关的函数380
12.7.3与文件访问相关的函数381
12.8使用tempfile模块生成临时文件和临时目录383
12.9本章小结385
本章练习385
3章数据库编程386
13.1Python数据库API简介387
13.1.1全局变量387
13.1.2数据库API的核心类388
13.1.3操作数据库的基本流程389
13.2操作SQLite数据库389
13.2.1创建数据表390
13.2.2使用SQLite Expert工具391
13.2.3使用序列重复执行DML语句393
13.2.4执行查询395
13.2.5事务控制396
13.2.6执行SQL脚本397
13.2.7创建自定义函数398
13.2.8创建聚集函数399
13.2.9创建比较函数400
13.3操作MySQL数据库401
13.3.1下载和安装MySQL数据库401
13.3.2使用pip工具管理模块404
13.3.3执行DDL语句405
13.3.4执行DML语句407
13.3.5执行查询语句408
13.3.6调用存储过程409
13.4本章小结410
本章练习411
4章并发编程412
14.1线程概述413
14.1.1线程和进程413
14.1.2多线程的优势414
14.2线程的创建和启动415
14.2.1调用Thread类的构造器创建线程415
14.2.2继承Thread类创建线程类417
14.3线程的生命周期418
14.3.1新建和就绪状态418
14.3.2运行和阻塞状态419
14.3.3线程死亡420
14.4控制线程421
14.4.1join线程422
14.4.2后台线程422
14.4.3线程睡眠:sleep423
14.5线程同步424
14.5.1线程安全问题424
14.5.2同步锁(Lock)425
14.5.3死锁428
14.6线程通信430
14.6.1使用Condition实现线程通信430
14.6.2使用队列(Queue)控制线程通信433
14.6.3使用Event控制线程通信434
14.7线程池436
14.7.1使用线程池437
14.7.2获取执行结果439
14.8线程相关类440
14.8.1线程局部变量440
14.8.2定时器441
14.8.3任务调度442
14.9多进程443
14.9.1使用fork创建新进程443
14.9.2使用multiprocessing.Process创建新进程444
14.9.3Context和启动进程的方式446
14.9.4使用进程池管理进程448
14.9.5进程通信449
14.10本章小结451
本章练习451
5章网络编程452
15.1网络编程的基础知识453
15.1.1网络基础知识453
15.1.2IP地址和端口号454
15.2Python的基本网络支持455
15.2.1Python的网络模块概述455
15.2.2使用urllib.parse子模块456
15.2.3使用urllib.request读取资源459
15.2.4管理cookie464
15.3基于TCP协议的网络编程467
15.3.1TCP协议基础467
15.3.2使用socket创建TCP服务器端468
15.3.3使用socket通信469
15.3.4加入多线程470
15.3.5记录用户信息472
15.3.6半关闭的socket477
15.3.7selectors模块478
15.4基于UDP协议的网络编程480
15.4.1UDP协议基础480
15.4.2使用socket发送和接收数据481
15.4.3使用UDP协议实现多点广播483
15.5电子邮件支持484
15.5.1使用smtplib模块发送邮件484
15.5.2使用poplib模块收取邮件488
15.6本章小结491
本章练习491
6章文档和测试492
16.1使用pydoc生成文档493
16.1.1在控制台中查看文档494
16.1.2生成HTML文档495
16.1.3启动本地服务器来查看文档信息495
16.1.4查找模块496
16.2软件测试概述497
16.2.1软件测试的概念和目的497
16.2.2软件测试的分类498
16.2.3开发活动和测试活动499
16.2.4常见的Bug管理工具499
16.3文档测试500
16.4单元测试502
16.4.1单元测试概述502
16.4.2单元测试的逻辑覆盖504
16.5使用PyUnit(unittest)506
16.5.1PyUnit(unittest)的用法507
16.5.2运行测试510
16.5.3使用测试包511
16.5.4测试固件之setUp和tearDown513
16.5.5跳过测试用例515
16.6本章小结516
本章练习516
7章打包和发布517
17.1使用zipapp模块518
17.1.1生成可执行的Python档案包518
17.1.2创建独立应用519
17.2使用PyInstaller生成可执行程序520
17.2.1安装PyInstaller520
17.2.2生成可执行程序521
17.3本章小结523
本章练习523
8章合金弹头524
18.1合金弹头游戏简介525
18.2pygame简介525
18.2.1安装pygame526
18.2.2pygame常用的游戏API527
18.3开发游戏界面组件529
18.3.1游戏界面分析529
18.3.2实现“怪物”类529
18.3.3实现怪物管理534
18.3.4实现“子弹”类536
18.3.5加载、管理游戏图片538
18.3.6让游戏“运行”起来540
18.4增加“角色”541
18.4.1开发“角色”类541
18.4.2添加角色547
18.5合理绘制地图550
18.6增加音效551
18.7增加游戏场景554
18.8本章小结558
本章练习558
9章数据可视化559
19.1使用Matplotlib生成数据图560
19.1.1安装Matplotlib包560
19.1.2Matplotlib数据图入门561
19.1.3管理图例562
19.1.4管理坐标轴565
19.1.5管理多个子图566
19.2功能丰富的数据图570
19.2.1饼图570
19.2.2柱状图571
19.2.3水平柱状图573
19.2.4散点图574
19.2.5等高线图576
19.2.63D图形577
19.3使用Pygal生成数据图578
19.3.1安装Pygal包578
19.3.2Pygal数据图入门578
19.3.3配置Pygal数据图580
19.4Pygal支持的常见数据图581
19.4.1折线图581
19.4.2水平柱状图和水平折线图581
19.4.3叠加柱状图和叠加折线图582
19.4.4饼图583
19.4.5点图584
19.4.6仪表(Gauge)图585
19.4.7雷达图586
19.5处理数据587
19.5.1CSV文件格式587
19.5.2JSON数据590
19.5.3数据清洗593
19.5.4读取网络数据595
19.6本章小结597
本章练习597
第20章网络爬虫598
20.1Scrapy简介599
20.1.1了解Scrapy599
20.1.2安装Scrapy600
20.2使用爬虫爬取、分析招聘信息601
20.2.1创建Scrapy项目601
20.2.2使用shell调试工具603
20.2.3Scrapy开发步骤606
20.2.4使用JSON导出信息611
20.2.5将数据写入数据库611
20.2.6使用Pygal展示招聘信息612
20.3处理反爬虫613
20.3.1使用shell调试工具分析目标站点614
20.3.2使用Scrapy爬取高清图片616
20.3.3应对反爬虫的常见方法618
20.3.4整合Selenium模拟浏览器行为620
20.4本章小结624
本章练习624
|
商品评价
100%好评
共有0人参与评分评价商品