宝典丛书 Python宝典

来自站长百科
跳转至: 导航、​ 搜索

Python宝典.jpg

内容提要[ ]

Python是目前流行的脚本语言之一。《Python宝典》由浅入深、循序渐进地为读者讲解了如何使用Python进行编程开发。《Python宝典》内容共分三篇,分为入门篇、高级篇和案例篇。入门篇包括Python的认识和安装、开发工具简介、Python基本语法、数据结构与算法、多媒体编程、系统应用、图像处理和GUI编程等内容。高级篇包括用Python操作数据库、进行Web开发、网络编程、科学计算、多线程编程等内容。案例篇选择了3个案例演示了Python在Windows系统优化、大数据处理和游戏开发方面的应用。 《Python宝典》针对Python的常用扩展模块给出了详细的语法介绍,并且给出了典型案例,通过对《Python宝典》的学习,读者能够很快地使用Python进行编程开发。 《Python宝典》适合Python初学者、程序设计人员、编程爱好者、本科及大专院校学生,以及需要进行对科学的计算的工程人员阅读。

目录[ ]

第1部分入门篇 第1章初识Python 2 1.1 Python是什么 2 1.2 Python有什么优点 3 1.3 其他程序设计语言中的Python 4 1.4 快速搭建Python开发环境 5 1.4.1 哪些系统中可使用Python 5 1.4.2 Python的下载和安装 6 1.4.3 用VS2008编译Python源码 8 1.4.4 Python开发工具:Vim 9 1.4.5 Python开发工具:Emacs 13 1.4.6 Python开发工具:PythonWin 16 1.4.7 其他的Python开发工具 17 1.5 第一个Python程序 19 1.5.1 从“Hello,Python!”开始 19 1.5.2 Python的交互解释器 20 1.6 本章小结 21 第2章 Python起步必备 22 2.1 Python代码的组织形式 22 2.1.1 用缩进来分层 22 2.1.2 两种代码注释的方式 23 2.1.3 Python语句的断行 23 2.2 Python的基本输入输出函数 25 2.2.1 接收输入的input函数 25 2.2.2 输出内容的print函数 26 2.3 Python对中文的支持 27 2.3.1 Python 3之前版本如何使用中文 27 2.3.2 更全面的中文支持 29 2.4 简单实用的Python计算器 29 2.4.1 直接进行算术运算 30 2.4.2 math模块提供丰富的数学函数 30 2.4.3 Python对大整数的支持 31 2.5 本章小结 32 第3章 Python数据类型与基本语句 33 3.1 Python数据类型:数字 33 3.1.1 整型和浮点型 33 3.1.2 运算符 34 3.2 Python数据类型:字符串 36 3.2.1 Python中的字符串 36 3.2.2 字符串中的转义字符 36 3.2.3 操作字符串 37 3.2.4 字符串的索引和分片 39 3.2.5 格式化字符串 40 3.2.6 字符串、数字类型的转换 40 3.2.7 原始字符串(Raw String) 41 3.3 Python数据类型:列表和元组 42 3.3.1 创建和操作列表 42 3.3.2 创建和操作元组 43 3.4 Python数据类型:字典 43 3.5 Python数据类型:文件 44 3.6 Python的流程控制语句 46 3.6.1 分支结构:if语句 46 3.6.2 循环结构:for语句 48 3.6.3 循环结构:while语句 50 3.7 本章小结 51 第4章可复用的函数与模块 52 4.1 Python自定义函数 52 4.1.1 函数声明 52 4.1.2 函数调用 53 4.2 参数让函数更有价值 54 4.2.1 有默认值的参数 54 4.2.2 参数的传递方式 55 4.2.3 如何传递任意数量的参数 56 4.2.4 用参数返回计算结果 57 4.3 变量的作用域 57 4.4 最简单的函数:用lambda声明函数 58 4.5 可重用结构:Python模块 59 4.5.1 Python模块的基本用法 59 4.5.2 Python在哪里查找模块 61 4.5.3 是否需要编译模块 62 4.5.4 模块也可独立运行 63 4.5.5 如何查看模块提供的函数名 64 4.6 用包来管理多个模块 65 4.7 本章小结 66 第5章数据结构与算法 67 5.1 表、栈和队列 67 5.1.1 表 67 5.1.2 栈 68 5.1.3 队列 70 5.2 树和图 72 5.2.1 树 72 5.2.2 二叉树 73 5.2.3 图 76 5.3 查找与排序 78 5.3.1 查找 78 5.3.2 排序 79 5.4 本章小结 82 第6章面向对象的Python 83 6.1 面向对象编程概述 83 6.1.1 Python中的面向对象思想 83 6.1.2 类和对象 84 6.2 在Python中定义和使用类 84 6.2.1 类的定义 85 6.2.2 类的使用 86 6.3 类的属性和方法 87 6.3.1 类的属性 87 6.3.2 类的方法 88 6.4 类的继承 91 6.4.1 使用继承 91 6.4.2 Python的多重继承 92 6.5 在类中重载方法和运算符 94 6.5.1 方法重载 94 6.5.2 运算符重载 95 6.6 在模块中定义类 97 6.7 本章小结 98 第7章异常处理与程序调试 99 7.1 异常的处理 99 7.1.1 用try语句捕获异常 99 7.1.2 常见异常的处理 101 7.1.3 多重异常的捕获 102 7.2 用代码抛出异常 103 7.2.1 用raise抛出异常 103 7.2.2 assert——简化的raise语句 104 7.2.3 自定义异常类 105 7.3 使用pdb调试Python脚本 106 7.3.1 运行语句 106 7.3.2 运行表达式 107 7.3.3 运行函数 107 7.3.4 设置硬断点 108 7.3.5 pdb调试命令 109 7.4 在PythonWin中调试程序 111 7.5 本章小结 113 第8章 Python多媒体编程 114 8.1 使用PyOpenGL绘制三维图形 114 8.1.1 安装PyOpenGL 114 8.1.2 使用PyOpenGL创建窗口 115 8.1.3 绘制文字 116 8.1.4 绘制二维图形 118 8.1.5 绘制三维图形 120 8.1.6 纹理映射 122 8.2 播放音频文件 125 8.2.1 使用DirectSound 125 8.2.2 使用WMPlayer.OCX 126 8.3 PyGame 128 8.3.1 安装PyGame 128 8.3.2 使用PyGame编写简单的游戏 129 8.4 本章小结 132 第9章使用PIL处理图片 133 9.1 PIL概述 133 9.1.1 安装PIL 133 9.1.2 PIL简介 135 9.2 使用PIL处理图片 137 9.2.1 转换图片格式 137 9.2.2 生成缩略图 139 9.2.3 为图片添加Logo 142 9.3 本章小结 147 第10章系统编程 148 10.1 访问Windows注册表 148 10.1.1 注册表概述 148 10.1.2 使用Python操作注册表 149 10.1.3 查看系统启动项 152 10.1.4 修改IE 153 10.2 文件和目录 156 10.2.1 文件目录常用函数 156 10.2.2 批量重命名 158 10.2.3 代码框架生成器 159 10.3 生成可执行文件 160 10.3.1 安装py2exe 161 10.3.2 使用py2exe生成可执行文件 161 10.3.3 使用cx_freeze生成可执行 文件 163 10.4 运行其他程序 164 10.4.1 使用os.system()函数运行其 他程序 164 10.4.2 使用ShellExecute函数运行 其他程序 165 10.4.3 使用CreateProcess函数运行 其他程序 166 10.4.4 使用ctypes调用kernel32.dll 中的函数 167 10.5 本章小结 168 第11章使用PythonWin编写GUI 169 11.1 Windows GUI编程概述 169 11.1.1 使用Windows API创建窗口 169 11.1.2 使用MFC创建窗口 172 11.2 创建对话框 172 11.2.1 创建对话框 173 11.2.2 向对话框添加控件 174 11.2.3 使用DLL文件中的资源 176 11.2.4 处理按钮消息 177 11.3 创建菜单 179 11.3.1 创建菜单 179 11.3.2 使用DLL中的菜单 182 11.3.3 处理菜单消息 184 11.4 本章小结 185 第12章使用tkinter编写GUI 186 12.1 tkinter概述 186 12.1.1 创建简单的窗口 186 12.1.2 向窗口中添加组件 187 12.2 使用组件 188 12.2.1 组件分类 188 12.2.2 组件布局 188 12.2.3 使用按钮 189 12.2.4 使用文本框 190 12.2.5 使用标签 192 12.2.6 使用菜单 193 12.2.7 使用单选框和复选框 195 12.2.8 绘制图形 197 12.3 事件处理 199 12.3.1 事件表示 199 12.3.2 响应事件 201 12.4 创建对话框 204 12.4.1 使用标准对话框 204 12.4.2 创建自定义对话框 208 12.5 本章小结 210 第13章使用wxPython编写GUI 211 13.1 wxPython概述 211 13.1.1 安装wxPython 211 13.1.2 创建窗口 212 13.2 组件 214 13.2.1 面板 214 13.2.2 按钮 215 13.2.3 标签 217 13.2.4 文本框 218 13.2.5 单选框和复选框 221 13.2.6 使用sizer布置组件 222 13.3 对话框 224 13.3.1 消息框和标准对话框 224 13.3.2 创建自定义对话框 226 13.4 菜单 227 13.4.1 创建菜单 228 13.4.2 绑定菜单事件 230 13.5 一个简单的文本编辑器 231 13.5 本章小结 234 第14章使用PyGTK编写GUI 235 14.1 PyGTK概述 235 14.1.1 PyGTK安装 235 14.1.2 创建窗口 236 14.2 组件 238 14.2.1 标签 238 14.2.2 按钮 241 14.2.3 容器组件 243 14.2.4 文本框 246 14.2.5 单选框和复选框 249 14.3 消息框和对话框 250 14.3.1 消息框 250 14.3.2 标准对话框 252 14.3.3 自定义对话框 254 14.4 使用菜单 256 14.4.1 创建菜单 256 14.4.2 菜单事件 259 14.5 资源文件 260 14.5.1 使用Glade创建资源文件 261 14.5.2 使用资源文件 263 14.6 本章小结 264 第15章使用PyQT编写GUI 265 15.1 PyQt概述 265 15.1.1 PyQt的安装 265 15.1.2 使用PyQt创建窗口 266 15.2 组件 267 15.2.1 标签 267 15.2.2 布局组件和空白项 268 15.2.3 按钮 270 15.2.4 文本框 272 15.2.5 单选框和复选框 275 15.2.6 菜单 276 15.3 创建对话框 278 15.3.1 消息框和标准对话框 279 15.3.2 自定义对话框 283 15.4 使用资源 285 15.4.1 使用Qt Designer创建资源 文件 285 15.4.2 使用资源文件 287 15.5 本章小结 288 第2部分高级篇 第16章 Python与数据库 290 16.1 连接Access数据库 290 16.1.1 使用ODBC连接Access数 据库 290 16.1.2 使用 DAO连接Access数 据库 294 16.1.3 使用ADO连接Access数 据库 295 16.2 使用MySQL数据库 296 16.2.1 安装MySQL 297 16.2.2 连接到MySQL 299 16.3 嵌入式数据库SQLite 301 16.4 本章小结 302 第17章 Python Web应用 303 17.1 开源Web应用服务器Zope 303 17.1.1 安装Zope 303 17.1.2 使用Zope管理界面 305 17.1.3 创建模板 308 17.1.4 添加Python脚本 310 17.2 使用Plone内容管理系统 312 17.2.1 安装Plone 312 17.2.2 安装Plone插件 314 17.3 在Microsoft IIS中使用Python 316 17.3.1 安装Microsoft IIS 317 17.3.2 在ASP中使用Python脚本 319 17.3.3 一个简单的例子 321 17.4 在Apache中使用Python 325 17.4.1 安装配置Apache 325 17.4.2 安装mod_python 327 17.4.3 使用Python Sever Pages创建 留言板 328 17.5 本章小结 331 第18章 Python网络编程 332 18.1 使用socket模块 332 18.1.1 网络编程概述 332 18.1.2 使用socket模块建立网络 通信 333 18.1.3 在局域网中传输文件 338 18.2 使用urllib、httplib和ftplib 341 18.2.1 使用Python访问网站 341 18.2.2 访问FTP 345 18.3 使用poplib和smtplib模块收发邮件 350 18.3.1 检查E-mail 350 18.3.2 发送E-mail 353 18.4 本章小结 357 第19章处理HTML与XML 358 19.1 处理HTML 358 19.1.1 HTMLParser类简介 358 19.1.2 获取页面图片地址 359 19.1.3 查看天气预报 361 19.2 处理XML 366 19.2.1 XML基础 367 19.2.2 文档类型定义 368 19.2.3 命名空间 370 19.3 使用Python处理XML 370 19.3.1 使用xml.parsers.expat处理 XML 371 19.3.2 使用xml.sax处理XML 373 19.3.3 使用xml.dom处理XML 374 19.4 简单的RSS阅读器 375 19.5 本章小结 378 第20章功能强大的正则表达式 379 20.1 正则表达式概述 379 20.1.1 正则表达式的基本元字符 379 20.1.2 常用正则表达式分析 380 20.2 支持正则表达式的re模块 381 20.2.1 用match函数进行搜索 381 20.2.2 用sub函数进行内容替换 382 20.2.3 用split函数分割字符串 383 20.3 编译生成正则表达式对象 383 20.3.1 以“”开头的元字符 383\ 20.3.2 用compile函数编译正则表 达式 385 20.3.3 在正则表达式中使用原始字 符串 385 20.4 用正则表达式对象提速 386 20.4.1 使用match方法匹配和搜索 386 20.4.2 使用sub方法替换内容 387 20.4.3 使用split方法分割字符串 388 20.5 正则表达式中的分组 389 20.5.1 分组的概述 389 20.5.2 分组的扩展语法 390 20.6 匹配和搜索的结果对象:Match对象 391 20.6.1 使用Match对象处理组 391 20.6.2 使用Match对象处理索引 392 20.7 使用正则表达式处理文件 393 20.8 本章小结 395 第21章科学计算 396 21.1 NumPy和SciPy简介 396 21.1.1 安装NumPy和SciPy 396 21.1.2 NumPy简介 398 21.1.3 SciPy简介 399 21.2 矩阵运算和解线性方程组 400 21.2.1 矩阵运算 400 21.2.2 解线性方程组 402 21.3 使用Matplotlib绘制函数图形 403 21.3.1 安装Matplotlib 403 21.3.2 使用Matplotlib绘制图形 405 21.4 本章小结 407 第22章 Python扩展和嵌入 408 22.1 用C/C++扩展Python 408 22.1.1 VS2008编译环境的设置 408 22.1.2 Python扩展程序的结构 414 22.1.3 在Python扩展中使用MFC 416 22.2 在C/C++中嵌入Python 420 22.2.1 高层次的嵌入Python 420 22.2.2 较低层次嵌入Python 421 22.2.3 在C中嵌入Python实例 426 22.3 通过SWIG编写Python扩展 428 22.3.1 在VS中使用SWIG 428 22.3.3 SWIG接口文件的语法简介 431 22.4 Boost.Python使程序更简单 433 22.4.1 下载编译Boost.Python 433 22.4.2 使用Boost.Python简化扩展 和嵌入 435 22.4.3 使用Pyste生成代码 439 22.5 本章小结 440 第23章多线程编程 441 23.1 线程基础 441 23.1.1 创建线程 441 23.1.2 Thread对象中的方法 442 23.2 线程同步 445 23.2.1 简单的线程同步 445 23.2.2 使用条件变量保持线程同步 447 23.2.3 使用队列让线程同步 448 23.3 线程间通信 449 23.3.1 Event对象的方法 449 23.3.2 使用Event对象实现线程间 通信 450 23.4 微线程——Stackless Python 450 23.4.1 Stackless Python概述 451 23.4.2 使用微线程 453 23.5 本章小结 454 第3部分案例篇 第24章案例1:用Python优化Windows 456 24.1 案例概述 456 24.2 创建图形化界面 457 24.2.1 编写脚本创建GUI 457 24.2.2 响应菜单事件 459 24.3 清理垃圾文件 461 24.3.1 遍历目录 462 24.3.2 扫描垃圾文件 463 24.3.3 使用多线程 464 24.3.4 扫描所有磁盘 465 24.3.5 删除垃圾文件 467 24.4 搜索文件 469 24.4.1 搜索大文件 469 24.4.2 按名称搜索文件 471 24.5 本章小结 472 第25章案例2:用Python玩转大数据 473 25.1 案例概述 473 25.1.1 了解大数据处理方式 473 25.1.2 处理日志文件 474 25.1.3 案例目标 475 25.2 日志文件的分割 476 25.3 编写Map函数处理小文件 477 25.4 编写Reduce函数 479 25.5 本章小结 480 第26章案例3:植物大战僵尸 481 26.1 案例概述 481 26.1.1 游戏效果 481 26.1.2 游戏规划设计 482 26.2 收集资源 483 26.2.1 收集图片素材 483 26.2.3 收集声效素材 484 26.3 编写初始脚本 485 26.3.1 定义游戏初始环境 485 26.3.2 导入游戏素材 486 26.4 编写游戏核心脚本 489 26.4.1 编写游戏循环脚本 489 26.4.2 处理事件——响应玩家的 操作 490 26.4.3 添加角色到游戏 492 26.4.4 更新角色状态 493 26.4.5 重绘画面 494 26.4.6 判断角色交战状态 494 26.4.7 判断胜负状态 495 26.5 本章小结 496

前言[ ]

Python是一种功能强大的脚本语言。使用Python可以完成从文本处理到创建复杂的三维图形等各种工作。在企业级应用中,由于Python具有简洁的语法和丰富的扩展模块,因此,使用Python可以大幅缩短开发周期,节约成本。 另外,Jython还可以在Java中使用Python,通过Python的灵活性来提高Java在企业级应用的效率。在Web方面,有很多基于Python的流行Web框架,如Zope/Plone、Django、TurboGear等。通过这些Web框架,程序员可以使用Python快速构建安全、功能强大的网站。 在数值计算与工程应用方面,Python与传统的C和Fortran相比,更加灵活、简洁,并且可以十分方便地创建GUI界面。通过使用SciPy模块和Matplotlib绘图库可以进行数值计算,实现工程数据的可视化。 如何学习本书 本书内容共分三篇26章,分别为入门篇、高级篇和案例篇。 入门篇为第1章至第15章,从初识Python开始,由浅入深地介绍了Python的安装、开发工具的使用、Python数据类型与基本语句、可复用的函数与模块、数据结构与算法、面向对象的Python、异常处理与程序调试、Python多媒体编程、使用PIL处理图片、系统编程、使用Python的GUI编程等内容。其中,第11章至第15章专门对Python的几种GUI编程工具进行了讲解,读者可以比较各种GUI编程工具,根据自己的兴趣及以前所学的知识,选择适合自己使用的GUI编程工具。 高级篇为第16章至第23章,主要介绍了用Python操作数据库、进行Web开发、网络编程、科学计算、多线程编程等内容。其中,第22章介绍了Python的扩展和嵌入,需要读者有C/C++的相关背景,如果读者不会使用C/C++进行编程,可以跳过该章。在大部分开发场景中,不掌握这部分知识也不影响用Python编程。 案例篇为第24章至第26章,每章介绍一个案例,包括用Python优化Windows、用Python处理大数据和用Python开发《植物大战僵尸》游戏。通过对这3个案例的学习,可进一步巩固读者前面所学的知识。 本书以Python 3.x为基础进行讲解,并在与Python 2.x有区别的地方加上了相关介绍,使Python 2.x和Python 3.x的读者都能使用本书。 本书特色 内容全面,对Python各方面的知识都做了系统详尽的讲解。 结构清晰,全书整体结构上遵循从易到难、由浅入深的顺序。 内容新颖,结合当前最新的Python 3.x版本进行讲解。 实用性强,本书在各章节中都有大量程序示例,并在最后一篇详细讲解了3个不同方向的开发实例。 实例丰富,对于每一个知识点,书中都通过相应的示例进行讲解。 适合的读者 Python初学者 程序设计人员 编程爱好者 本科及大专院校学生 需要进行科学计算的工程人员 本书由杨佩璐(山东中医药大学)、宋强(安阳工学院)共同编写,其中杨佩璐编写了本书的第1~13章,宋强编写了本书的第14~20章,同时参与编写的还有徐新其、张俊华、赵桂芹、张增强、刘桂珍、李杰、曾智海、代得新、邵星星、过建军、王正江、朱林鑫、张伟杰、田亮亮,在此一并表示感谢。 在本书的编写过程中,编者竭尽全力,不敢有丝毫疏忽,并对所有程序都进行了上机调试,但由于Python发展非常迅速,仍会有不同版本的差别,因此需要读者多加注意。另外,书中难免有不足之处,望广大读者批评指正。


编者 2014年1月