为了能够使广大读者既能够掌握Python语言的基础知识,又能够将Python语言应用于某个特定的领域(如Web开发),本书介绍与Python相关的方方面面,为了便于读者学习,本书每个章节都提供了详尽的例子,结合实例讲解各个知识点。涉及的程序代码都给出了详细的注释,有助于读者轻松领会程序开发的精髓,快速提高开发技能。在学习完本书之后,相信读者能够很好地掌握Python语言,同时可以使用Python语言进行实际项目的开发。本书适合Python爱好者、大中专院校的学生、社会培训班的学生。
封面图
目录
- 前言
- 第一篇Python语言基础
- 第1章 进入Python的世界1
- 1.1 Python的由来1
- 1.2 Python的特性2
- 1.3 第一个Python程序3
- 1.4 搭建开发环境4
- 1.4.1 Python的下载和安装4
- 1.4.2 交互式命令行的使用10
- 1.5 Python的开发工具11
- 1.5.1 PyCharm的使用11
- 1.5.2 Eclipse IDE的介绍13
- 1.5.3 EditPlus编辑器环境的配置15
- 1.6 不同平台下的Python17
- 1.7 小结17
- 1.8 习题18
- 第2章 必须知道的Python基础语法19
- 2.1 Python的文件类型19
- 2.1.1 源代码19
- 2.1.2 字节代码19
- 2.1.3 优化代码20
- 2.2 Python的编码规范20
- 2.2.1 命名规则20
- 2.2.2 代码缩进与冒号23
- 2.2.3 模块导入的规范24
- 2.2.4 使用空行分隔代码25
- 2.2.5 正确的注释26
- 2.2.6 语句的分隔28
- 2.3 变量和常量30
- 2.3.1 变量的命名30
- 2.3.2 变量的赋值31
- 2.3.3 局部变量32
- 2.3.4 全局变量32
- 2.3.5 常量34
- 2.4 数据类型35
- 2.4.1 数字35
- 2.4.2 字符串37
- 2.5 运算符与表达式38
- 2.5.1 算术运算符和算术表达式38
- 2.5.2 关系运算符和关系表达式40
- 2.5.3 逻辑运算符和逻辑表达式40
- 2.6 小结41
- 2.7 习题42
- 第3章 Python的控制语句43
- 3.1 结构化程序设计43
- 3.2 条件判断语句44
- 3.2.1 if条件语句44
- 3.2.2 if…elif…else判断语句46
- 3.2.3 if语句也可以嵌套46
- 3.2.4 switch语句的替代方案48
- 3.3 循环语句50
- 3.3.1 while循环50
- 3.3.2 for循环51
- 3.3.3 break和continue语句53
- 3.4 结构化程序示例54
- 3.5 小结56
- 3.6 习题57
- 第4章 Python数据结构58
- 4.1 元组结构58
- 4.1.1 元组的创建58
- 4.1.2 元组的访问59
- 4.1.3 元组的遍历61
- 4.2 列表结构62
- 4.2.1 列表的创建62
- 4.2.2 列表的使用64
- 4.2.3 列表的查找、排序、反转65
- 4.2.4 列表实现堆栈和队列66
- 4.3 字典结构68
- 4.3.1 字典的创建68
- 4.3.2 字典的访问69
- 4.3.3 字典的方法71
- 4.3.4 字典的排序、复制74
- 4.3.5 全局字典——sys.modules模块76
- 4.4 序列77
- 4.5 小结79
- 4.6 习题79
- 第5章 模块与函数80
- 5.1 Python程序的结构80
- 5.2 模块81
- 5.2.1 模块的创建81
- 5.2.2 模块的导入81
- 5.2.3 模块的属性83
- 5.2.4 模块的内置函数83
- 5.2.5 自定义包86
- 5.3 函数88
- 5.3.1 函数的定义88
- 5.3.2 函数的参数89
- 5.3.3 函数的返回值92
- 5.3.4 函数的嵌套95
- 5.3.5 递归函数97
- 5.3.6 lambda函数98
- 5.3.7 Generator函数99
- 5.4 小结101
- 5.5 习题101
- 第6章 字符串与正则表达式102
- 6.1 常见的字符串操作102
- 6.1.1 字符串的格式化102
- 6.1.2 字符串的转义符104
- 6.1.3 字符串的合并106
- 6.1.4 字符串的截取107
- 6.1.5 字符串的比较108
- 6.1.6 字符串的反转109
- 6.1.7 字符串的查找和替换110
- 6.1.8 字符串与日期的转换112
- 6.2 正则表达式应用113
- 6.2.1 正则表达式简介113
- 6.2.2 使用re模块处理正则表达式115
- 6.3 小结121
- 6.4 习题121
- 第7章 使用Python处理文件122
- 7.1 文件的常见操作122
- 7.1.1 文件的创建122
- 7.1.2 文件的读取124
- 7.1.3 文件的写入126
- 7.1.4 文件的删除127
- 7.1.5 文件的复制128
- 7.1.6 文件的重命名129
- 7.1.7 文件内容的搜索和替换130
- 7.1.8 文件的比较131
- 7.1.9 配置文件的访问133
- 7.2 目录的常见操作135
- 7.2.1 创建和删除目录135
- 7.2.2 目录的遍历136
- 7.3 文件处理示例——文件属性浏览程序137
- 7.4 小结139
- 7.5 习题140
- 第8章 面向对象编程141
- 8.1 面向对象的概述141
- 8.2 类和对象142
- 8.2.1 类和对象的区别142
- 8.2.2 类的定义143
- 8.2.3 对象的创建143
- 8.3 属性和方法144
- 8.3.1 类的属性144
- 8.3.2 类的方法146
- 8.3.3 内部类的使用148
- 8.3.4 __init__方法149
- 8.3.5 __del__方法150
- 8.3.6 垃圾回收机制151
- 8.3.7 类的内置方法152
- 8.3.8 方法的动态特性156
- 8.4 继承157
- 8.4.1 使用继承157
- 8.4.2 抽象基类159
- 8.4.3 多态性160
- 8.4.4 多重继承161
- 8.4.5 Mixin机制163
- 8.5 运算符的重载164
- 8.6 Python与设计模式167
- 8.6.1 设计模式简介167
- 8.6.2 设计模式示例——Python实现工厂方法167
- 8.7 小结168
- 8.8 习题169
- 第9章 异常处理与程序调试170
- 9.1 异常的处理170
- 9.1.1 Python中的异常170
- 9.1.2 try…except的使用171
- 9.1.3 try…finally的使用173
- 9.1.4 使用raise抛出异常174
- 9.1.5 自定义异常174
- 9.1.6 assert语句的使用175
- 9.1.7 异常信息176
- 9.2 使用自带IDLE调试程序177
- 9.3 使用Eclipse IDE调试程序179
- 9.3.1 新建工程179
- 9.3.2 配置调试179
- 9.3.3 设置断点182
- 9.4 小结183
- 9.5 习题184
- 第10章 Python数据库编程185
- 10.1 数据库简介185
- 10.2 Python DATABASE API简介186
- 10.3 Python连接数据库的专用模块187
- 10.3.1 数据库专用模块的下载与安装187
- 10.3.2 Python连接Oracle数据库190
- 10.3.3 Python 连接MySQL数据库191
- 10.3.4 Python 连接SQL Server数据库194
- 10.3.5 Python 连接SQLite数据库196
- 10.4 使用Python的持久化模块读写数据197
- 10.5 小结198
- 10.6 习题198
- 第二篇Python的GUI程序设计
- 第11章 Python的GUI开发199
- 11.1 Python的GUI开发选择199
- 11.1.1 认识Python内置的GUI库Tkinter199
- 11.1.2 使用Tkinter进行开发200
- 11.1.3 认识PyQT GUI库203
- 11.1.4 使用PyQT GUI库进行开发203
- 11.2 小结204
- 11.3 习题204
- 第12章 GUI编程与Tkinter相关组件介绍205
- 12.1 GUI程序开发简介205
- 12.2 Tkinter及其主要组件206
- 12.2.1 在程序中使用Tkinter206
- 12.2.2 顶层窗口206
- 12.2.3 标签207
- 12.2.4 框架207
- 12.2.5 按钮208
- 12.2.6 输入框208
- 12.2.7 单选按钮209
- 12.2.8 复选按钮209
- 12.2.9 消息210
- 12.2.10 滚动条211
- 12.2.11 列表框211
- 12.3 Tkinter所有组件简介212
- 12.4 小结212
- 12.5 习题213
- 第三篇Python的Web开发
- 第13章 Python的HTML应用215
- 13.1 HTML介绍215
- 13.1.1 HTML的历史215
- 13.1.2 SGML、HTML、XHTML、HTML5的关系216
- 13.1.3 HTML的标签216
- 13.1.4 HTML的框架组成217
- 13.2 URL的处理218
- 13.2.1 统一资源定位符218
- 13.2.2 URL的解析219
- 13.2.3 URL的拼合221
- 13.2.4 URL的分解222
- 13.2.5 URL的编解码223
- 13.2.6 中文的编解码225
- 13.2.7 查询参数的编码226
- 13.3 CGI的使用228
- 13.3.1 CGI介绍228
- 13.3.2 获取CGI环境信息230
- 13.3.3 解析用户的输入232
- 13.4 获取HTML资源235
- 13.4.1 使用urlopen和urlretrieve获取HTTP资源235
- 13.4.2 分析返回资源的相关信息240
- 13.4.3 使用http.client模块获取资源242
- 13.5 HTML文档的解析244
- 13.6 小结246
- 13.7 习题246
- 第14章 Python和XML247
- 14.1 XML介绍247
- 14.1.1 XML的演进历史247
- 14.1.2 XML的优点和限制248
- 14.1.3 XML技术的Python支持249
- 14.2 XML文档概览和验证250
- 14.2.1 XML文档的基础概念250
- 14.2.2 XML文档的结构良好性验证251
- 14.2.3 XML文档的有效性验证253
- 14.3 分析XML文档结构255
- 14.3.1 XML的元素和标签256
- 14.3.2 元素的属性258
- 14.3.3 XML的名字259
- 14.3.4 字符实体261
- 14.3.5 CDATA段262
- 14.3.6 注释264
- 14.3.7 处理指令265
- 14.3.8 XML定义266
- 14.4 使用SAX处理XML文档266
- 14.4.1 SAX介绍266
- 14.4.2 SAX处理的组成部分267
- 14.5 使用DOM处理XML文档271
- 14.5.1 DOM介绍271
- 14.5.2 xml.dom模块中的接口操作272
- 14.5.3 对XML文档的操作280
- 14.6 小结286
- 14.7 习题286
- 第15章 Python的Web开发——Django框架的应用287
- 15.1 常见的Web开发框架287
- 15.2 MVC模式290
- 15.2.1 MVC模式介绍290
- 15.2.2 MVC模式的优缺点290
- 15.2.3 Django框架中的MVT291
- 15.3 Django开发环境的搭建292
- 15.3.1 Django框架的安装292
- 15.3.2 数据库的配置293
- 15.4 Django框架的基本应用294
- 15.4.1 Web应用的创建294
- 15.4.2 Django中的开发服务器296
- 15.4.3 创建数据库297
- 15.4.4 生成Django应用298
- 15.4.5 创建数据模型299
- 15.4.6 URL设计300
- 15.4.7 创建视图302
- 15.4.8 模板系统303
- 15.5 Django框架的高级应用305
- 15.5.1 管理界面305
- 15.5.2 生成数据库数据307
- 15.5.3 Session功能308
- 15.6 小结310
- 15.7 习题310
- 第四篇Python的其他应用
- 第16章 敏捷方法学在Python中的应用——测试驱动开发311
- 16.1 测试驱动开发311
- 16.1.1 测试驱动开发模式311
- 16.1.2 TDD的优势312
- 16.1.3 TDD的使用步骤313
- 16.2 unittest框架314
- 16.2.1 unittest模块介绍314
- 16.2.2 构建测试用例315
- 16.2.3 构建测试固件316
- 16.2.4 组织多个测试用例318
- 16.2.5 构建测试套件319
- 16.2.6 重构代码321
- 16.2.7 执行测试322
- 16.3 使用doctest进行测试324
- 16.3.1 doctest模块介绍324
- 16.3.2 构建可执行文档325
- 16.3.3 执行doctest测试326
- 16.4 小结328
- 16.5 习题328
- 第17章 Python中的进程和线程329
- 17.1 进程和线程329
- 17.1.1 进程和线程的概念329
- 17.1.2 Python中对于进程和线程处理的支持330
- 17.2 Python下的进程编程331
- 17.2.1 进程运行环境331
- 17.2.2 创建进程332
- 17.2.3 终止进程333
- 17.3 使用subprocess模块管理进程334
- 17.3.1 使用Popen类管理进程334
- 17.3.2 调用外部系统命令337
- 17.3.3 替代其他进程创建函数337
- 17.4 进程间的信号机制338
- 17.4.1 信号的处理338
- 17.4.2 信号使用的规则340
- 17.5 多线程概述340
- 17.5.1 什么是多线程341
- 17.5.2 线程的状态341
- 17.5.3 Python中的线程支持341
- 17.6 生成和终止线程342
- 17.6.1 使用_thread模块342
- 17.6.2 使用threading.Thread类344
- 17.7 管理线程346
- 17.7.1 线程状态转移346
- 17.7.2 主线程对子线程的控制347
- 17.7.3 线程中的局部变量348
- 17.8 线程之间的同步349
- 17.8.1 临界资源和临界区349
- 17.8.2 锁机制351
- 17.8.3 条件变量352
- 17.8.4 信号量355
- 17.8.5 同步队列355
- 17.8.6 线程同步小结356
- 17.9 小结357
- 17.10 习题357
- 第18章 基于Python的系统管理358
- 18.1 增强的交互式环境IPython358
- 18.1.1 IPython介绍358
- 18.1.2 IPython的安装359
- 18.1.3 IPython的启动360
- 18.1.4 IPython的环境配置360
- 18.2 和IPython的简单交互360
- 18.2.1 IPython中的输入和输出360
- 18.2.2 输出提示符的区别361
- 18.2.3 输出提示符有区别的原因362
- 18.3 IPython中的magic函数363
- 18.3.1 magic函数的使用和构造364
- 18.3.2 目录管理364
- 18.3.3 对象信息的收集368
- 18.3.4 magic函数小结370
- 18.4 IPython适合于系统管理的特点371
- 18.4.1 Tab补全371
- 18.4.2 历史记录功能372
- 18.4.3 执行外部系统命令和运行文件374
- 18.4.4 对象查看和自省377
- 18.4.5 直接编辑代码379
- 18.4.6 设置别名和宏381
- 18.5 使用Python进行文件管理383
- 18.5.1 文件的比较383
- 18.5.2 文件的归档384
- 18.5.3 文件的压缩387
- 18.6 使用Python定时执行任务389
- 18.6.1 使用休眠功能389
- 18.6.2 使用sched模块来定时执行任务389
- 18.7 小结390
- 18.8 习题390
- 第19章 Python和网络编程391
- 19.1 网络模型介绍391
- 19.1.1 OSI简介391
- 19.1.2 TCP/IP简介392
- 19.2 Socket应用393
- 19.2.1 Socket基础393
- 19.2.2 Socket的工作方式393
- 19.3 服务器端和客户端通信394
- 19.3.1 服务器端的构建394
- 19.3.2 客户端的构建399
- 19.4 异步通信方式400
- 19.4.1 使用Fork方式400
- 19.4.2 使用线程方式401
- 19.4.3 使用异步IO方式402
- 19.4.4 使用asyncore模块405
- 19.5 Twisted网络框架408
- 19.5.1 Twisted框架介绍408
- 19.5.2 Twisted框架下服务器端的实现409
- 19.5.3 Twisted框架下服务器端的其他处理410
- 19.6 小结413
- 19.7 习题413
- 第20章 常见的Python网络应用414
- 20.1 使用FTP传输文件414
- 20.1.1 FTP的工作原理和Python库支持414
- 20.1.2 FTP的登录和退出415
- 20.1.3 FTP的数据传输416
- 20.2 使用POP3获取邮件418
- 20.2.1 POP3协议介绍418
- 20.2.2 poplib模块的使用419
- 20.3 使用SMTP发送邮件420
- 20.3.1 SMTP协议介绍420
- 20.3.2 smtplib模块的使用420
- 20.4 使用Telnet远程登录422
- 20.4.1 Telnet协议介绍和Python库支持422
- 20.4.2 telnetlib模块的使用422
- 20.5 小结423
- 20.6 习题423
- 第21章 图像处理424
- 21.1 图像处理相关概念424
- 21.1.1 Python下的图像处理包424
- 21.1.2 Pillow支持的图像文件格式425
- 21.1.3 图像处理中的其他概念426
- 21.2 基本的图像处理427
- 21.2.1 图像的读写操作427
- 21.2.2 获取图像信息428
- 21.2.3 图像文件格式的转换429
- 21.2.4 图像的裁剪和合成431
- 21.2.5 图像的变换433
- 21.3 图像处理的高级应用435
- 21.3.1 图像的通道操作435
- 21.3.2 对图像的增强438
- 21.3.3 Pillow中的内置滤镜440
- 21.4 小结441
- 21.5 习题441
- 第22章 Windows下的Python开发442
- 22.1 组件对象模型442
- 22.1.1 组件对象模型介绍442
- 22.1.2 COM结构443
- 22.1.3 COM对象的交互443
- 22.2 Python对COM技术的支持444
- 22.2.1 Python中的Windows扩展:PyWin32444
- 22.2.2 客户端COM组件445
- 22.2.3 实现COM组件446
- 22.3 Windows下的常见Python应用449
- 22.3.1 对Word的自动访问449
- 22.3.2 对Excel的自动访问451
- 22.3.3 对PowerPoint的自动访问452
- 22.3.4 对Outlook的自动访问454
- 22.4 小结455
- 22.5 习题455