欢迎光临
免费的PDF电子书下载网站

Python编程项目实战三部曲:Python编程快速上手+Python极客项目编程+Python游戏编程快速上手 PDF下载

编辑推荐

随着Python编程的火爆,相关的Python编程类图书也灿若星海。如何选择一套适合自己的Python编程入门教程,显得至关重要。这套书完全是从项目实战角度出发,写给那些喜欢用实战来学习的Python爱好者的。《Python编程快速上手 让繁琐工作自动化》负责入门Python,并且以解决实际工作中的问题为实战切入口,新颖、有趣。《Python极客项目编程》则给Python爱好者打开了另一番天地,书中的众多实战案例新奇有趣,让人目不暇接。《Python游戏编程快速上手》则另辟蹊径,从游戏开发的角度,让Python语言大放异彩。《Python编程快速上手 让繁琐工作自动化》编辑推荐亚马逊畅销Python编程图书,帮助你通过编程快速实现工作自动化在本书中,你将学习利用Python 编程,在几分钟内完成手工需要几小时的工作,而事先却无需具备编程经验。一旦掌握了编程的基础知识,你就可以毫不费力地创建Python 程序,完成高效的自动化工作,包括:● 在一个文件或多个文件中搜索文本;● 创建、更新、移动和重命名文件和文件夹;

随着Python编程的火爆,相关的Python编程类图书也灿若星海。如何选择一套适合自己的Python编程入门教程,显得至关重要。

这套书完全是从项目实战角度出发,写给那些喜欢用实战来学习的Python爱好者的。《Python编程快速上手 让繁琐工作自动化》负责入门Python,并且以解决实际工作中的问题为实战切入口,新颖、有趣。《Python极客项目编程》则给Python爱好者打开了另一番天地,书中的众多实战案例新奇有趣,让人目不暇接。《Python游戏编程快速上手》则另辟蹊径,从游戏开发的角度,让Python语言大放异彩。

《Python编程快速上手 让繁琐工作自动化》编辑推荐

亚马逊畅销Python编程图书,帮助你通过编程快速实现工作自动化

在本书中,你将学习利用Python 编程,在几分钟内完成手工需要几小时的工作,而事先却无需具备编程经验。一旦掌握了编程的基础知识,你就可以毫不费力地创建Python 程序,完成高效的自动化工作,包括:

● 在一个文件或多个文件中搜索文本;

● 创建、更新、移动和重命名文件和文件夹;

● 搜索网页和下载的在线内容;

● 在任意大小的Excel电子表格中更新和格式化数据;

● 拆分、合并PDF文件,以及如何加水印和加密;

● 发送提醒邮件和文本通知;

● 填写在线表格。

本书的作者Al Sweigart是一位杰出Python程序员,他还是《Python 密码学编程》、《Python 游戏编程快速上手》和《Python 和Pygame 游戏开发指南》的作者。

《Python极客项目编程》编辑推荐

Python 是一种强大的编程语言,容易学习而且充满乐趣。但掌握了基本知识后,接下来做什么?

本书包含了一组富有想象力的编程项目,它们将引导你用Python 来制作图像和音乐、模拟现实世界的现象,并与Arduino 和树莓派这样的硬件进行交互。你将学习使用常见的Python 工具和库,如numpy、matplotlib 和pygame,来完成以下工作:

● 利用参数方程和turtle模块生成万花尺图案;

● 通过模拟频率泛音在计算机上创作音乐;

● 将图形图像转换为ASCII文本图形;

● 编写一个三维立体画程序,生成隐藏在随机图案下的3D图像;

● 通过探索粒子系统、透明度和广告牌技术,利用OpenGL着色器制作逼真的动画;

● 利用来自CT和MRI扫描的数据实现3D可视化;

● 将计算机连接到Arduino编程,创建响应音乐的激光秀。

通过本书,你可以享受作为极客的真正乐趣!

《Python游戏编程快速上手》编辑推荐
本书教你如何使用流行的Python编程语言来编写计算机游戏,即便你之前没有任何编程经验。

首先,本书带领读者猜数字和Tic Tac Toe这样的经典游戏,然后开始学习更加高 级的游戏的开发,例如基于文本的Sonar Treasure Hunt游戏以及带有音效和动画的Dodger游戏。在此过程中, 我们还会学习关键的编程和数学概念,这些将使得你的游戏开发技能达到更高的层级。

通过本书,你将学习:

使用组合循环、变量和流程控制语句;

选择合适的数据结构来完成任务,例如列表、字典和元组;

使用pygame模块,为游戏添加图形和动画;

处理键盘和鼠标输入;

编写简单的人工智能程序,从而能够和计算机玩游戏;

使用加密技术把文本信息转换为密码;

调试程序并找出常见错误。

随着你编写每一个游戏,你将打下牢固的Python编程基础,并且能够更好地理解计算机科学的基础知识。

 

 

内容简介

《Python编程快速上手 让繁琐工作自动化》内容简介如今,人们面临的大多数任务都可以通过编写计算机软件来完成。Python是一种解释型、面向对象、动态数据类型的高 级程序设计语言。通过Python编程,我们能够解决现实生活中的很多任务。本书是一本面向实践的Python编程实用指南。本书的目的,不仅是介绍Python语言的基础知识,而且还通过项目实践教会读者如何应用这些知识和技能。本书的首部分介绍了基本Python编程概念,第 二部分介绍了一些不同的任务,通过编写Python程序,可以让计算机自动完成它们。第 二部分的每一章都有一些项目程序,供读者学习。每章的末尾还提供了一些习题和深入的实践项目,帮助读者巩固所学的知识。附录部分提供了所有习题的解答。

《Python编程快速上手 让繁琐工作自动化》内容简介

如今,人们面临的大多数任务都可以通过编写计算机软件来完成。Python是一种解释型、面向对象、动态数据类型的高 级程序设计语言。通过Python编程,我们能够解决现实生活中的很多任务。

本书是一本面向实践的Python编程实用指南。本书的目的,不仅是介绍Python语言的基础知识,而且还通过项目实践教会读者如何应用这些知识和技能。本书的首部分介绍了基本Python编程概念,第 二部分介绍了一些不同的任务,通过编写Python程序,可以让计算机自动完成它们。第 二部分的每一章都有一些项目程序,供读者学习。每章的末尾还提供了一些习题和深入的实践项目,帮助读者巩固所学的知识。附录部分提供了所有习题的解答。

本书适合任何想要通过Python学习编程的读者,尤其适合缺乏编程基础的初学者。通过阅读本书,读者将能利用强大的编程语言和工具,并且会体会到Python编程的快乐。

《Python极客项目编程》内容简介
Python是一种解释型、面向对象、动态数据类型的高 级程序设计语言。通过Python编程,我们能够解决现实生活中的很多任务。

本书通过14个有趣的项目,帮助和鼓励读者探索Python编程的世界。全书共14章,分别介绍了通过Python编程实现的一些有趣项目,包括解析iTunes播放列表、模拟人工生命、创建ASCII码艺术图、照片拼接、生成三维立体图、创建粒子模拟的烟花喷泉效果、实现立体光线投射算法,以及用Python结合Arduino和树莓派等硬件的电子项目。本书并不介绍Python语言的基础知识,而是通过一系列不简单的项目,展示如何用Python来解决各种实际问题,以及如何使用一些流行的Python库。

本书适合那些想要通过Python编程来进行尝试和探索的读者,适合了解基本的Python语法和基本的编程概念的读者进一步学习,对于Python程序员有一定的启发和参考价值。

《Python游戏编程快速上手》内容简介
Python是一种高 级程序设计语言,因其简洁、易读及可扩展性日渐成为程序设计领域备受推崇的语言。

本书通过编写一个个小巧、有趣的游戏来教授Python编程,并且采用直接展示游戏的源代码并通过实例来解释编程的原理的方式。全书共21章,12个游戏程序和示例贯穿其中,介绍了Python基础知识、数据类型、函数、流程控制、程序调试、流程图设计、字符串操作、列表和字典、笛卡尔坐标系、密码学基础、游戏AI模拟、动画图形、碰撞检测、声音和图像等方方面面的程序设计知识。本书可以帮助读者在轻松有趣的过程中,掌握Python游戏编程的基本技能。

本书适合不同年龄和层次的Python编程初学者阅读。

 

作者简介

暂无

Python编程项目实战三部曲:Python编程快速上手+Python极客项目编程+Python游戏编程快速上手 PDF下载

目录

《Python编程快速上手 让繁琐工作自动化》目录第 一部分  Python编程基础 第 1章 Python基础 31.1 在交互式环境中输入表达式 31.2 整型、浮点型和字符串数据类型 61.3 字符串连接和复制 61.4 在变量中保存值 71.4.1 赋值语句 71.4.2 变量名 91.5 第 一个程序 91.6 程序剖析 111.6.1 注释 111.6.2 print()函数 111.6.3 input()函数 111.6.4 打印用户的名字 121.6.5 len()函数 121.6.6 str()、int()和float()函数 131.7 小结 151.8 习题 15第 2章 控制流 172.1 布尔值 182.2 比较操作符 192.3 布尔操作符 202.3.1 二元布尔操作符 202.3.2 not操作符 212.4 混合布尔和比较操作符 212.5 控制流的元素 222.5.1 条件 222.5.2 代码块 222.6 程序执行 232.7 控制流语句 232.7.1 if语句 232.7.2 else语句 242.7.3 elif语句 252.7.4 while循环语句 302.7.5 恼人的循环 312.7.6 break语句 332.7.7 continue语句 342.7.8 for循环和range()函数 372.7.9 等价的while循环 392.7.10 range()的开始、停止和步长参数 392.8 导入模块 40from import语句 412.9 用sys.exit()提前结束程序 412.10 小结 412.11 习题 41第3章 函数 433.1 def语句和参数 443.2 返回值和return语句 453.3 None值 463.4 关键字参数和print() 473.5 局部和全局作用域 483.5.1 局部变量不能在全局作用域内使用 483.5.2 局部作用域不能使用其他局部作用域内的变量 493.5.3 全局变量可以在局部作用域中读取 493.5.4 名称相同的局部变量和全局变量 503.6 global语句 503.7 异常处理 523.8 一个小程序:猜数字 543.9 小结 553.10 习题 563.11 实践项目 563.11.1 Collatz序列 563.11.2 输入验证 57第4章 列表 594.1 列表数据类型 594.1.1 用下标取得列表中的单个值 604.1.2 负数下标 614.1.3 利用切片取得子列表 614.1.4 用len()取得列表的长度 624.1.5 用下标改变列表中的值 624.1.6 列表连接和列表复制 624.1.7 用del语句从列表中删除值 634.2 使用列表 634.2.1 列表用于循环 644.2.2 in和not in操作符 654.2.3 多重赋值技巧 664.3 增强的赋值操作 664.4 方法 674.4.1 用index()方法在列表中查找值 674.4.2 用append()和insert()方法在列表中添加值 684.4.3 用remove()方法从列表中删除值 694.4.4 用sort()方法将列表中的值排序 694.5 例子程序:神奇8球和列表 704.6 类似列表的类型:字符串和元组 714.6.1 可变和不可变数据类型 724.6.2 元组数据类型 734.6.3 用list()和tuple()函数来转换类型 744.7 引用 754.7.1 传递引用 764.7.2 copy模块的copy()和deepcopy()函数 774.8 小结 784.9 习题 784.10 实践项目 794.10.1 逗号代码 794.10.2 字符图网格 79第5章 字典和结构化数据 815.1 字典数据类型 815.1.1 字典与列表 825.1.2 keys()、values()和items()方法 835.1.3 检查字典中是否存在键或值 845.1.4 get()方法 845.1.5 setdefault()方法 855.2 漂亮打印 865.3 使用数据结构对真实世界建模 875.3.1 井字棋盘 885.3.2 嵌套的字典和列表 915.4 小结 925.5 习题 935.6 实践项目 935.6.1 好玩游戏的物品清单 935.6.2 列表到字典的函数,针对好玩游戏物品清单 94第6章 字符串操作 956.1 处理字符串 956.1.1 字符串字面量 956.1.2 双引号 966.1.3 转义字符 966.1.4 原始字符串 966.1.5 用三重引号的多行字符串 976.1.6 多行注释 976.1.7 字符串下标和切片 986.1.8 字符串的in和not in操作符 986.2 有用的字符串方法 996.2.1 字符串方法upper()、lower()、isupper()和islower() 996.2.2 isX字符串方法 1006.2.3 字符串方法startswith()和endswith() 1026.2.4 字符串方法join()和split() 1026.2.5 用rjust()、ljust()和center()方法对齐文本 1036.2.6 用strip()、rstrip()和lstrip()删除空白字符 1046.2.7 用pyperclip模块拷贝粘贴字符串 1056.3 项目:口令保管箱 106第 1步:程序设计和数据结构 106第 2步:处理命令行参数 106第3步:复制正确的口令 1076.4 项目:在Wiki标记中添加无序列表 108第 1步:从剪贴板中复制和粘贴 108第 2步:分离文本中的行,并添加星号 109第3步:连接修改过的行 1096.5 小结 1106.6 习题 1106.7 实践项目 111表格打印 111第 二部分 自动化任务第7章 模式匹配与正则表达式 1157.1 不用正则表达式来查找文本模式 1167.2 用正则表达式查找文本模式 1177.2.1 创建正则表达式对象 1187.2.2 匹配Regex对象 1187.2.3 正则表达式匹配复习 1197.3 用正则表达式匹配更多模式 1197.3.1 利用括号分组 1197.3.2 用管道匹配多个分组 1207.3.3 用问号实现可选匹配 1217.3.4 用星号匹配零次或多次 1217.3.5 用加号匹配一次或多次 1227.3.6 用花括号匹配特定次数 1227.4 贪心和非贪心匹配 1237.5 findall()方法 1247.6 字符分类 1247.7 建立自己的字符分类 1257.8 插入字符和美元字符 1267.9 通配字符 1267.9.1 用点-星匹配所有字符 1277.9.2 用句点字符匹配换行 1277.10 正则表达式符号复习 1287.11 不区分大小写的匹配 1287.12 用sub()方法替换字符串 1297.13 管理复杂的正则表达式 1297.14 组合使用re.IGNOREC ASE、re.DOTALL和re.VERBOSE 1307.15 项目:电话号码和Email地址提取程序 130第 1步:为电话号码创建一个正则表达式 131第 2步:为email地址创建一个正则表达式 132第3步:在剪贴板文本中找到所有匹配 132第4步:所有匹配连接成一个字符串,复制到剪贴板 133第5步:运行程序 133第6步:类似程序的构想 1347.16 小结 1347.17 习题 1347.18 实践项目 1367.18.1 强口令检测 1367.18.2 strip()的正则表达式版本 136第8章 读写文件 1378.1 文件与文件路径 1378.1.1 Windows上的倒斜杠以及OS X和Linux上的正斜杠 1388.1.2 当前工作目录 1398.1.3 绝 对路径与相对路径 1398.1.4 用os.makedirs()创建新文件夹 1408.1.5 os.path模块 1408.1.6 处理绝 对路径和相对路径 1418.1.7 查看文件大小和文件夹内容 1428.1.8 检查路径有效性 1438.2 文件读写过程 1448.2.1 用open()函数打开文件 1458.2.2 读取文件内容 1458.2.3 写入文件 1468.3 用shelve模块保存变量 1478.4 用pprint.pformat()函数保存变量 1488.5 项目:生成随机的测验试卷文件 149第 1步:将测验数据保存在一个字典中 149第 2步:创建测验文件,并打乱问题的次序 150第3步:创建答案选项 151第4步:将内容写入测验试卷和答案文件 1518.6 项目:多重剪贴板 153第 1步:注释和shelf设置 153第 2步:用一个关键字保存剪贴板内容 154第3步:列出关键字和加载关键字的内容 1548.7 小结 1558.8 习题 1558.9 实践项目 1568.9.1 扩展多重剪贴板 1568.9.2 疯狂填词 1568.9.3 正则表达式查找 156第9章 组织文件 1579.1 shutil模块 1589.1.1 复制文件和文件夹 1589.1.2 文件和文件夹的移动与改名 1589.1.3 永 久删除文件和文件夹 1609.1.4 用send2trash模块安全地删除 1609.2 遍历目录树 1619.7 用zipfile模块压缩文件 1629.3.1 读取ZIP文件 1639.3.2 从ZIP文件中解压缩 1649.3.3 创建和添加到ZIP文件 1649.4 项目:将带有美国风格日期的文件改名为欧洲风格日期 165第 1步:为美国风格的日期创建一个正则表达式 165第 2步:识别文件名中的日期部分 166第3步:构成新文件名,并对文件改名 167第4步:类似程序的想法 1689.5 项目:将一个文件夹备份到一个ZIP文件 168第 1步:弄清楚ZIP文件的名称 168第 2步:创建新ZIP文件 169第3步:遍历目录树并添加到ZIP文件。 170第4步:类似程序的想法 1709.6 小结 1719.7 习题 1719.8 实践项目 1719.8.1 选择性拷贝 1719.8.2 删除不需要的文件 1729.8.3 消除缺失的编号 172第 10章 调试 17310.1 抛出异常 17410.2 取得反向跟踪的字符串 17510.3 断言 17610.3.1 在交通灯模拟中使用断言 17710.3.2 禁用断言 17810.4 日志 17810.4.1 使用日志模块 17810.4.2 不要用print()调试 18010.4.3 日志级别 18010.4.4 禁用日志 18110.4.5 将日志记录到文件 18210.5 IDLE的调试器 18210.5.1 Go 18310.5.2 Step 18310.5.3 Over 18310.5.4 Out 18310.5.5 Quit 18310.5.6 调试一个数字相加的程序 18410.5.7 断点 18510.6 小结 18710.7 习题 18710.7 实践项目 188调试硬币抛掷 188第 11章 从Web抓取信息 18911.1 项目:利用webbrowser模块的mapIt.py 190第 1步:弄清楚URL 190第 2步:处理命令行参数 191第3步:处理剪贴板内容,加载浏览器 191第4步:类似程序的想法 19211.2 用requests模块从Web下载文件 19211.2.1 用requests.get()函数下载一个网页 19311.2.2 检查错误 19310.3 将下载的文件保存到硬盘 19410.4 HTML 19510.4.1 学习HTML的资源 19510.4.2 快速复习 19510.4.3 查看网页的HTML源代码 19610.4.4 打开浏览器的开发 者工具 19710.4.5 使用开 发者工具来寻找HTML元素 19810.5 用BeautifulSoup模块解析HTML 19910.5.1 从HTML创建一个BeautifulSoup对象 20010.5.2 用select()方法寻找元素 20010.5.3 通过元素的属性获取数据 20210.6 项目:“I’m Feeling Lucky”Google查找 202第 1步:获取命令行参数,并请求查找页面 203第 2步:找到所有的结果 203第3步:针对每个结果打开Web浏览器 204第4步:类似程序的想法 20510.7 项目:下载所有XKCD漫画 205第 1步:设计程序 206第 2步:下载网页 207第3步:寻找和下载漫画图像 207第4步:保存图像,找到前一张漫画 208第4步:类似程序的想法 20910.8 用selenium模块控制浏览器 21010.8.1 启动selenium控制的浏览器 21010.8.2 在页面中寻找元素 21110.8.3 点击页面 21210.8.4 填写并提交表单 21210.8.5 发送特殊键 21310.8.6 点击浏览器按钮 21310.8.7 关于selenium的更多信息 21410.9 小结 21410.10 习题 21410.11 实践项目 21510.11.1 命令行邮件程序 21510.11.2 图像网站下载 21510.11.3 2048 21510.11.4 链接验证 215第 12章 处理Excel电子表格 21712.1 Excel文档 21712.2 安装openpyxl模块 21812.3 读取Excel文档 21812.3.1 用openpyxl模块打开Excel文档 21912.3.2 从工作簿中取得工作表 21912.3.3 从表中取得单元格 22012.3.4 列字母和数字之间的转换 22112.3.5 从表中取得行和列 22212.3.6 工作薄、工作表、单元格 22312.4 项目:从电子表格中读取数据 223第 1步:读取电子表格数据 224第 2步:填充数据结构 225第3步:将结果写入文件 226第4步:类似程序的思想 22712.5 写入Excel文档 22712.5.1 创建并保存Excel文档 22712.5.2 创建和删除工作表 22812.5.3 将值写入单元格 22912.6 项目:更新一个电子表格 229第 1步:利用更新信息建立数据结构 230第 2步:检查所有行,更新不正确的价格 231第4步:类似程序的思想 23112.7 设置单元格的字体风格 23212.8 Font对象 23212.9 公式 23412.10 调整行和列 23512.10.1 设置行高和列宽 23512.10.2 合并和拆分单元格 23612.10.3 冻结窗格 23712.10.4 图表 23812.11 小结 24012.11 习题 24012.12 实践项目 24112.12.1 乘法表 24112.12.2 空行插入程序 24112.12.3 电子表格单元格翻转程序 24212.12.4 文本文件到电子表格 24212.12.5 电子表格到文本文件 242第 13章 处理PDF和Word文档 24313.1 PDF文档 24313.1.1 从PDF提取文本 24413.1.2 解密PDF 24513.1.3 创建PDF 24613.1.4 拷贝页面 24613.1.5 旋转页面 24713.1.6 叠加页面 24813.1.7 加密PDF 24913.2 项目:从多个PDF中合并选择的页面 250第 1步:找到所有PDF文件 250第 2步:打开每个PDF文件 251第3步:添加每一页 252第4步:保存结果 252第5步:类似程序的想法 25313.3 Word文档 25313.3.1 读取Word文档 25413.3.2 从.docx文件中取得完整的文本 25413.3.3 设置Paragraph和Run对象的样式 25513.3.4 创建带有非默认样式的Word文档 25713.3.5 Run属性 25713.3.6 写入Word文档 25813.3.7 添加标题 26013.3.8 添加换行符和换页符 26113.3.9 添加图像 26113.4 小结 26213.5 习题 26213.6 实践项目 26313.6.1 PDF偏执狂 26313.6.2 定制邀请函,保存为Word文档 26313.6.3 暴力PDF口令破解程序 264第 14章 处理CSV文件和JSON数据 26514.1 csv模块 26514.2.1 Reader对象 26614.2.2 在for循环中,从Reader对象读取数据 26714.2.3 Writer对象 26814.2.4 delimiter和lineterminator关键字参数 26914.3 项目:从CSV文件中删除表头 269第 1步:循环遍历每个CSV文件 270第 2步:读入CSV文件 270第3步:写入CSV文件,没有第 一行 271第4步:类似程序的想法 27214.4 JSON和API 27214.5 json模块 27314.5.1 用loads()函数读取JSON 27314.5.2 用dumps函数写出JSON 27314.6 项目:取得当前的天气数据 274第 1步:从命令行参数获取位置 274第 2步:下载JSON数据 275第3步:加载JSON数据并打印天气 275第4步:类似程序的想法 27714.7 小结 27714.8 习题 27714.9 实践项目 277Excel到CSV的转换程序 277第 15章 保持时间、计划任务和启动程序 27915.1 time模块 27915.1.1 time.time()函数 27915.1.2 time.sleep()函数 28015.2 数字四舍五入 28115.3 项目:超级秒表 282第 1步:设置程序来记录时间 282第 2步:记录并打印单圈时间 283第4步:类似程序的想法 28315.4 datetime模块 28415.4.1 timedelta数据类型 28515.4.2 暂停直特定日期 28615.4.3 将datetime对象转换为字符串 28715.4.4 将字符串转换成datetime对象 28815.5 回顾Python的时间函数 28815.6 多线程 28915.6.1 向线程的目标函数传递参数 29015.6.2 并发问题 29115.7 项目:多线程XKCD下载程序 291第 1步:修改程序以使用函数 292第 2步:创建并启动线程 293第3步:等待所有线程结束 29315.8 从Python启动其他程序 29415.8.1 向Popen()传递命令行参数 29515.8.2 Task Scheduler、launchd和cron 29615.8.3 用Python打开网站 29615.8.4 运行其他Python脚本 29615.8.5 用默认的应用程序打开文件 29715.9 项目:简单的倒计 时程序 298第 1步:倒计  时 298第 2步:播放声音文件 298第3步:类似程序的想法 29915.10 小结 29915.11 习题 30015.12 实践项目 30015.12.1 美化的秒表 30015.12.2 计划的Web漫画下载 301第 16章 发送电子邮件和短信 30316.1 SMTP 30316.2 发送电子邮件 30416.2.1 连接到SMTP服务器 30416.2.2 发送SMTP的“Hello”消息 30516.2.3 开始TLS加密 30616.2.4 登录到SMTP服务器 30616.2.5 发送电子邮件 30616.2.6 从SMTP服务器断开 30716.3 IMAP 30716.4 用IMAP获取和删除电子邮件 30716.4.1 连接到IMAP服务器 30816.4.2 登录到IMAP服务器 30916.4.3 搜索电子邮件 30916.4.4 选择文件夹 30916.4.5 执行搜索 31016.4.6 大小限制 31216.4.7 取邮件并标记为已读 31216.4.8 从原始消息中获取电子邮件地址 31316.4.9 从原始消息中获取正文 31416.4.10 删除电子邮件 31516.4.11 从IMAP服务器断开 31516.5 项目:向会员发送会费提醒电子邮件 316第 1步:打开Excel文件 316第 2步:查找所有未付成员 317第3步:发送定制的电子邮件提醒 31816.6 用Twilio发送短信 31916.6.1 注册Twilio账号 31916.6.2 发送短信 32016.7 项目:“只给我发短信”模块 32116.8 小结 32216.9 习题 32316.10 实践项目 32316.10.1 随机分配家务活的电子邮件程序 32316.10.2 伞提醒程序 32416.10.3 自动退订 32416.10.4 通过电子邮件控制你的电脑 324第 17章 操作图像 32717.1 计算机图像基础 32717.1.1 颜色和RGBA值 32817.1.2 坐标和Box元组 32917.2 用Pillow操作图像 33017.2.1 处理Image数据类型 33117.2.2 裁剪图片 33217.2.3 复制和粘贴图像到其他图像 33317.2.4 调整图像大小 33517.2.5 旋转和翻转图像 33617.2.6 更改单个像素 33817.3 项目:添加徽标 339第 1步:打开徽标图像 340第 2步:遍历所有文件并打开图像 341第3步:调整图像的大小 341第4步:添加徽标,并保存更改 342第5步:类似程序的想法 34317.4 在图像上绘画 34417.4.1 绘制形状 34417.4.2 绘制文本 34617.5 小结 34717.6 习题 34817.7 实践项目 34817.7.1 扩展和修正本章项目的程序 34817.7.2 在硬盘上识别照片文件夹 34917.7.3 定制的座位卡 350第 18章 用GUI自动化控制键盘和鼠标 35118.1 安装pyautogui模块 35118.2 走对路 35218.2.1 通过注销关闭所有程序 35218.2.2 暂停和自动防故障装置 35218.3 控制鼠标移动 35318.3.1 移动鼠标 35418.3.2 获取鼠标位置 35418.4 项目:“现在鼠标在哪里?” 355第 1步:导入模块 355第 2步:编写退出代码和无限循环 355第3步:获取并打印鼠标坐标。 35618.5 控制鼠标交互 35718.5.1 点击鼠标 35718.5.2 拖动鼠标 35718.5.3 滚动鼠标 35918.6 处理屏幕 36018.6.1 获取屏幕快照 36018.6.2 分析屏幕快照 36018.7 项目:扩展mouseNow程序 36118.8 图像识别 36218.9 控制键盘 36318.9.1 通过键盘发送一个字符串 36318.9.2 键名 36418.9.3 按下和释放键盘 36518.9.4 热键组合 36518.10 复习PyAutoGUI的函数 36618.11 项目:自动填表程序 367第 1步:弄清楚步骤 368第 2步:建立坐标 368第3步:开始键入数据 370第4步:处理选择列表和单选按钮 371第5步:提交表单并等待 37218.12 小结 37218.13 习题 37318.14 实践项目 37318.14.1 看起来很忙 37318.14.2 即时通信机器人 37318.14.3 玩游戏机器人指南 374附录A 安装第三方模块 375附录B 运行程序 377附录C 习题答案 381《Python极客项目编程》目录第 1章  解析iTunes播放列表 31.1 iTunes播放列表文件剖析 31.2 所需模块 51.3 代码 51.3.1 查找重复 51.3.2 提取重复 61.3.3 查找多个播放列表中 共同的音轨 71.3.4 收集统计信息 81.3.5 绘制数据 81.3.6 命令行选项 91.4 完整代码 101.5 运行程序 131.6 小结 141.7 实验 14第 2章 万花尺 152.1 参数方程 162.1.1 万花尺方程 172.1.2 海龟画图 192.2 所需模块 202.3 代码 202.3.1 Spiro构造函数 202.3.2 设置函数 212.3.3 restart()方法 212.3.4 draw()方法 222.3.5 创建动画 222.3.5 SpiroAnimator类 232.3.5 genRandomParams()方法 242.3.6 重新启动程序 242.3.7 update()方法 252.3.8 显示或隐藏光标 252.3.9 保存曲线 252.3.10 解析命令行参数和初始化 262.4 完整代码 272.5 运行万花尺动画 322.6 小结 332.7 实验 33第 二部分 模拟生命第3章 Conway生命游戏 373.1 工作原理 383.2 所需模块 393.3 代码 403.3.1 表示网格 403.3.2 初始条件 413.3.3 边界条件 413.3.4 实现规则 423.3.5 向程序发送命令行参数 433.3.6 初始化模拟 433.4 完整代码 443.5 运行模拟人生的游戏 463.6 小结 473.7 实验 47第4章 用Karplus-Strong算法产生 音乐泛音 494.1 工作原理 514.1.1 模拟 514.1.2 创建WAV文件 524.1.3 小调五声音阶 534.2 所需模块 544.3 代码 544.3.1 用deque实现环形缓冲区 544.3.2 实现Karplus-Strong算法 554.3.3 写WAV文件 564.3.4 用pygame播放WAV 文件 564.3.5 main()方法 574.4 完整代码 584.5 运行拨弦模拟 614.6 小结 624.7 实验 62第5章 类鸟群:仿真鸟群 635.1 工作原理 645.2 所需模块 645.3 代码 645.3.1 计算类鸟群的位置和速度 655.3.2 设置边界条件 665.3.3 绘制类鸟群 675.3.4 应用类鸟群规则 685.3.5 添加个体 705.3.6 驱散类鸟群 715.3.7 命令行参数 715.3.8 Boids类 715.4 完整代码 725.5 运行类鸟群模拟 755.6 小结 765.7 实验 76第三部分 图片之乐第6章 ASCII文本图形 796.1 工作原理 806.2 所需模块 816.3 代码 816.3.1 定义灰度等级和网格 826.3.2 计算平均亮度 826.3.3 从图像生成ASCII内容 836.3.4 命令行选项 846.3.5 将ASCII文本图形字符 串写入文本文件 846.4 完整代码 856.5 运行ASCII文本图形生成程序 876.6 小结 876.7 实验 88第7章 照片马赛克 897.1 工作原理 907.1.1 分割目标图像 907.1.2 平均颜色值 917.1.3 匹配图像 917.2 所需模块 927.3 代码 927.3.1 读入小块图像 927.3.2 计算输入图像的平均 颜色值 937.3.3 将目标图像分割成网格 937.3.4 寻找小块的**佳匹配 947.3.5 创建图像网格 957.3.6 创建照片马赛克 967.3.7 添加命令行选项 977.3.8 控制照片马赛克的大小 977.4 完整代码 987.6 运行照片马赛克生成程序 1027.7 小结 1037.7 实验 103第8章 三维立体画 1058.1 工作原理 1068.1.1 感知三维立体画中的深度 1068.1.2 深度图 1088.2 所需模块 1098.3 代码 1098.3.1 重复给定的平铺图像 1098.3.2 从创建随机圆平铺 1108.3.3 创建三维立体画 1118.3.4 命令行选项 1128.4 完整代码 1138.5 运行三维立体画生成程序 1158.6 小结 1178.7 实验 117第四部分 走进三维第9章 理解OpenGL 1219.1 老式OpenGL 1229.2 现代OpenGL:三维图形管线 1249.2.1 几何图元 1249.2.2 三维变换 1259.2.3 着色器 1279.2.4 顶点缓冲区 1289.2.5 纹理贴图 1299.2.6 显示OpenGL 1299.3 所需模块 1309.4 代码 1309.4.1 创建OpenGL窗口 1309.4.2 设置回调 1319.4.3 Scene类 1339.5 完整代码 1379.6 运行OpenGL应用程序 1429.7 小结 1439.8 实验 143第 10章 粒子系统 14510.1 工作原理 14610.1.1 为粒子运动建模 14710.1.2 设置**大范围 14710.1.3 渲染粒子 14910.1.4 利用OpenGL混合来 创建更逼真火花 14910.1.5 使用公告板 15010.1.6 生成火花动画 15110.2 所需模块 15110.3 粒子系统的代码 15110.3.1 定义粒子的几何形状 15210.3.2 为粒子定义时间延迟 数组 15310.3.3 设置粒子初始速度 15310.3.4 创建顶点着色器 15410.3.5 创建片段着色器 15610.3.6 渲染 15610.3.7 Camera类 15810.4 粒子系统完整代码 15810.5 盒子代码 16410.6 主程序代码 16610.6.1 每步更新这些粒子 16710.6.2 键盘处理程序 16810.6.3 管理主程序循环 16810.7 完整主程序代码 16910.8 运行程序 17210.9 小结 17210.10 实验 172第 11章 体渲染 17311.1 工作原理 17411.1.1 数据格式 17411.1.2 生成光线 17511.1.3 显示OpenGL窗口 17711.2 所需模块 17811.3 项目代码概述 17811.4 生成三维纹理 17811.5 完整的三维纹理代码 18011.6 生成光线 18111.6.1 定义颜色立方体的 几何形状 18211.6.2 创建帧缓冲区对象 18411.6.3 渲染立方体的背面 18511.6.4 渲染立方体的正面 18511.6.5 渲染整个立方体 18611.6.6 调整大小处理程序 18711.7 完整的光线生成代码 18711.8 体光线投射 19211.8.1 顶点着色器 19411.8.2 片段着色器 19411.9 完整的体光线投射代码 19611.10 二维切片 19911.10.1 顶点着色器 20111.10.2 片段着色器 20211.10.3 针对二维切片的 用户界面 20211.11 完整的二维切片代码 20311.12 代码整合 20611.13 完整的主文件代码 20711.14 运行程序 20911.15 小结 21011.16 实验 210第五部分 玩硬件第 12章 Arduino简介 21512.1 Arduino 21612.2 Arduino生态系统 21712.2.1 语言 21812.2.2 IDE 21812.2.3 社区 21812.2.4 外设 21912.3 所需模块 21912.4 搭建感光电路 21912.4.1 电路工作原理 21912.4.2 Arduino程序 22012.4.3 创建实时图表 22112.5 Python代码 22212.6 完整的Python代码 22412.7 运行程序 22612.8 小结 22712.9 实验 227第 13章 激光音乐秀 22913.1 用激光产生图案 23013.1.1 电机控制 23013.1.2 快速傅里叶变换 23213.2 所需模块 23313.2.1 搭建激光秀 23413.2.2 连接电机驱动器 23613.3 Arduino程序 23713.3.1 配置Arduino数字 输出引脚 23813.3.2 主循环 23813.3.3 停止电机 24013.4 Python代码 24013.4.1 选择音频设备 24113.4.2 从输入设备读取数据 24113.4.3 计算数据流的FFT 24213.4.4 从FFT值提取频率 信息 24313.4.5 将频率转换为电机 速度和方向 24313.4.6 测试电机设置 24413.4.7 命令行选项 24513.4.8 手动测试 24513.5 完整的Python代码 24613.6 运行程序 24913.7 小结 25013.8 实验 250第 14章 基于树莓派的天气监控器 25314.1 硬件 25414.1.1 DHT11温湿度传感器 25414.1.2 树莓派 25514.1.3 设置树莓派 25514.2 安装和配置软件 25614.2.1 操作系统 25714.2.2 初始配置 25714.2.3 Wifi设置 25714.2.4 设置编程环境 25814.2.5 通过SSH连接 25914.2.6 Web框架Bottle 25914.2.7 用flot绘制 26014.2.8 关闭树莓派 26114.3 搭建硬件 26214.4 代码 26314.4.1 处理传感器数据请求 26414.4.2 绘制数据 26414.4.3 update()方法 26714.4.4 用于LED的JavaScript 处理程序 26714.4.5 添加交互性 26814.5 完整代码 26914.6 运行程序 27214.7 小结 27314.8 实验 273附录A 软件安装 275附录B 基础实用电子学 281附录C 树莓派的建议和技巧 289《Python游戏编程快速上手》目  录 第 1章  交互式Shell 11.1  一些简单的数学知识 11.1.1  整数和浮点数 21.1.2  表达式 21.2  计算表达式 31.3  语法错误 41.4  在变量中存储值 41.5  小结 8第 2章  编写程序 92.1  字符串值 102.2  连接字符串 102.3  在IDLE的文件编辑器中编写程序 112.3.1  创建Hello World程序 112.3.2  保存程序 122.3.3  运行程序 132.4  Hello World程序如何工作 142.4.1  注释 152.4.2  函数:程序中的小程序 152.4.3  终止程序 162.5  命名变量 162.6  小结 17第3章  “猜数字”游戏 193.1  “猜数字”的运行示例 203.2  “猜数字”程序的源代码 203.3  导入random模块 213.4  用random.randint()函数  生成随机数 223.5  欢迎玩家 233.6  流程控制语句 233.6.1  使用循环来重复代码 233.6.2  组织语句块 243.6.3  for循环语句 253.7  玩家的猜测 263.8  使用int()函数、float()函数、str() 函数和bool()函数来转换值 263.9  布尔数据类型 283.9.1  比较操作符 283.9.2  用条件检查True或False 293.9.3  体验布尔值、比较操作符  和条件 293.9.4  =和==的区别 303.10  if语句 303.11  用break语句提早离开循环 313.12  判断玩家是否赢了 313.13  判断玩家是否输了 323.14  小结 32第4章  一个讲笑话程序 354.1  Jokes游戏的运行示例 354.2  Jokes游戏的源代码 364.3  代码如何工作 364.4  转义字符 374.5  单引号和双引号 384.6  print()的end关键字形参 394.7  小结 39第5章  Dragon Realm 415.1  如何玩Dragon Realm 415.2  Dragon Realm的运行示例 425.3  Dragon Realm的流程图 425.4  Dragon Realm的源代码 435.5  导入random和time模块 445.6  Dragon Realm中的函数 445.6.1  def语句 455.6.2  调用函数 455.6.3  把函数定义放在哪里 455.7  多行字符串 465.8  while语句实现循环 465.9  布尔操作符 475.9.1  and操作符 475.9.2  or操作符 485.9.3  not操作符 495.9.4  布尔操作符的运算 495.10  返回值 505.11  全局作用域和局部作用域 515.12  函数形参 525.13  显示游戏结果 535.14  决定哪个山洞有友善的龙 535.15  游戏循环 545.15.1  在程序中调用函数 555.15.2  询问玩家要不要再玩一局 555.16  小结 56第6章  使用调试器 576.1  Bug的类型 576.2  调试器 586.2.1  启动调试器 596.2.2  用调试器单步执行程序 606.3  查找Bug 636.4  设置断点 656.5  使用断点 666.6  小结 68第7章  用流程图设计Hangman 697.1  如何玩Hangman 697.2  Hangman的运行示例 707.3  ASCII字符图 717.4  用流程图来设计一个程序 717.4.1  生成流程图 727.4.2  流程图的分支 737.4.3  结束或者重新开始游戏 747.4.4  再猜一次 757.4.5  为玩家提供反馈 777.5  小结 78第8章  编写Hangman的代码 798.1  Hangman的源代码 798.2  导入random模块 828.3  常量 828.4  列表数据类型 838.4.1  用索引访问元素 838.4.2  列表连接 848.4.3  in操作符 858.5  调用方法 858.5.1  列表方法reverse()和append() 868.5.2  字符串方法split() 868.6  从单词列表中获取一个神秘 单词 878.7  向玩家显示游戏板 878.7.1  list()函数和range()函数 888.7.2  列表和字符串分片 898.7.3  用空格表示神秘单词 908.8  获取玩家的猜测 918.8.1  字符串方法lower()和 upper() 928.8.2  离开while循环 938.9  elif语句 938.10  确保玩家输入一个有效的猜测 948.11  询问玩家是否想再玩一局 948.12  回顾Hangman中的函数 958.13  游戏循环 968.13.1  调用displayBoard()函数 968.13.2  让玩家输入他们的猜测 968.13.3  判断字母是否在这个神秘单词中 978.13.4  判断玩家是否获胜 978.13.5  当玩家猜错时 978.13.6  检查玩家是否输了 988.13.7  结束并重新设置游戏 988.14  小结 99第9章  Hangman扩展 1019.1  添加更多的猜测机会 1019.2  字典数据类型 1029.2.1  用len()函数获取字典的大小 1039.2.2  字典和列表的区别 1039.2.3  字典方法keys()和values() 1049.2.4  在Hangman中使用单词的字典 1049.3  从一个列表中随机选取 1059.4  从列表中删除项 1069.5  多变量赋值 1079.6  向玩家显示单词的分类 1089.7  小结 109第 10章  Tic Tac Toe 11110.1  Tic Tac Toe的运行示例 11210.2  Tic Tac Toe的源代码 11310.3  设计程序 11610.3.1  用数据表示游戏板 11710.3.2  游戏AI 11710.4  导入random模块 11910.5  在屏幕上打印游戏板 11910.6  让玩家来选择X或O 12010.7  决定谁先走 12110.8  在游戏板上放置一个标记 12110.8.1  列表引用 12110.8.2  在makeMove()中使用列表引用 12410.9  判断玩家是否获胜 12510.10  复制游戏板的数据 12610.11  判断游戏板上的格子是否 为空 12710.12  让玩家输入他们的落子 12710.13  短路求值 12810.14  从落子列表中选择一个                      落子 13010.15  None值 13010.16  创建计算机的AI 13110.16.1  计算机判断自己能否落子即获胜 13210.16.2  计算机判断玩家是否可以落子即获胜 13210.16.3  依次判断角、中心和边 13310.16.4  判断游戏板是否满了 13310.17  游戏循环 13410.17.1  决定玩家的符号和谁先走 13410.17.2  运行玩家的轮次 13410.17.3  运行计算机的轮次 13510.17.4  询问玩家是否再玩一次 13610.18  小结 136第 11章  推理游戏Bagels 13711.1  Bagels的运行示例 13811.2  Bagels的源代码 13811.3  Bagels的流程图 14011.4  导入random并定义  getSecretNum() 14011.5  打乱一组唯 一数的顺序 14111.5.1  用random.shuffle()函数改变列表项的顺序 14111.5.2  从打乱次序的数中获取神秘数字 14211.6  复合赋值操作符 14211.7  计算要给出的线索 14311.8  列表方法sort() 14411.9  字符串方法join() 14511.10  检查字符串中是否只包含 数字 14511.11  游戏的开始 14611.12  字符串插值 14611.13  游戏循环 14711.13.1  获取玩家的猜测 14711.13.2  根据玩家的猜测给出线索 14811.13.3  判断玩家的输赢 14811.13.4  询问玩家是否再玩一局 14811.14  小结 149第 12章  笛卡尔坐标 15112.1  网格和笛卡尔坐标 15112.2  负数 15312.3  计算机屏幕的坐标系 15412.4  数学技巧 15512.4.1  技巧1:减号吃掉它左边的加号 15512.4.2  技巧2:两个减号合并为一个加号 15512.4.3  技巧3:加法的可交换性 15612.5  绝 对值和abs()函数 15612.6  小结 157第 13章  Sonar Treasure Hunt游戏 15913.1  Sonar Treasure Hunt的运行 示例 16013.2  Sonar Treasure Hunt的源 代码 16213.3  设计程序 16713.4  导入random、sys和math模块 16713.5  创建一个新的游戏板 16713.6  绘制游戏板 16813.6.1  在顶部绘制X轴 16913.6.2  绘制海洋 17013.6.3  打印出海洋中的行 17013.6.4  在游戏板底部绘制X轴  坐标 17113.7  创建随机的藏宝箱 17113.8  判断一次移动是否有效 17213.9  在游戏板上进行一次移动 17213.9.1  找到近的藏宝箱的算法 17213.9.2  使用列表方法remove()删除值 17513.9.3  获取玩家的移动 17613.10  为玩家打印出游戏说明 17713.11  游戏循环 17713.11.1  为玩家显示游戏的状态 17913.11.2  处理玩家的移动 17913.11.3  找到一个沉没的藏宝箱 17913.11.4  判断玩家是否赢了 18013.11.5  判断玩家是否输了 18013.11.6  用sys.exit()函数终止程序 18113.12  小结 181第 14章  凯撒密码 18314.1  密码学和加密 18414.2  凯撒密码简介 18414.3  凯撒密码的运行示例 18514.4  凯撒密码程序的源代码 18614.6  决定加密还是解密 18714.7  从玩家处得到消息 18814.8  从玩家处得到密钥 18814.9  加密或解密消息 18814.9.1  使用字符串方法find()找到所传递的字符串 18914.9.2  加密或解密每个字母 19014.10  程序开始 19114.11  暴力破解 19114.12  添加暴力破解模式 19214.13  小结 193第 15章  Reversegam游戏 19515.1  如何玩Reversegam 19515.2  Reversegam的运行示例 19815.3  Reversegam的源代码 20015.4  导入模块和设置常量 20515.5  游戏板数据结构 20515.5.1  在屏幕上绘制游戏板数据结构 20515.5.2  创建一个新的游戏板数据结构 20615.6  判断一次落子是否有效 20715.6.1  查看8个方向中的每一个方向 20815.6.2  发现是否有可以反转的棋子 20915.7  判断有效的坐标 21015.7.1  得到所有有效移动的一个列表 21015.7.2  调用bool()函数 21115.8  计算游戏板的得分 21215.9  获取玩家的棋子选择 21215.10  决定谁先走 21315.11  在游戏板上落下一个棋子 21315.12  复制游戏板数据结构 21415.13  判断一个格子是否在 角落上 21415.14  获取玩家的移动 21415.15  获取计算机的移动 21615.15.1  角落移动策略 21615.15.2  获取高得分的移动的列表 21715.16  在屏幕上打印分数 21815.17  游戏开始 21815.17.1  检查僵局 21815.17.2  运行玩家的轮次 21915.17.3  运行计算机的轮次 22015.18  游戏循环 22115.19  询问玩家是否再玩一局 22215.20  小结 222第 16章  Reversegam AI模拟 22316.1  让计算机和自己下棋 22416.1.1  模拟程序1的运行示例 22416.1.2  模拟程序1的源代码 22516.1.3  删除玩家提示并添加一个计算机玩家 22616.2  让计算机自己多玩几次 22716.2.1  模拟程序2的运行示例 22716.2.2  模拟程序2的源代码 22716.2.3  记录多次游戏 22816.2.4  注释掉print()函数调用 22916.2.5  使用百分数评级AI 22916.3  比较不同的AI算法 23116.3.1  模拟程序3的源代码 23116.3.2  模拟程序3的AI是如何工作的 23216.3.3  比较AI 23516.4  小结 237第 17章  创建图形 23917.1  安装pygame 24017.2  pygame中的Hello World 24017.3  运行pygame Hello World程序的示例 24017.4  pygame Hello World的 源代码 24117.5  导入pygame模块 24217.6  初始化pygame 24317.7  设置pygame窗口 24317.7.1  元组 24317.7.2  Surface对象 24417.8  设置颜色变量 24417.9  将文本写到pygame窗口上 24517.9.1  使用字体来样式化文本 24517.9.2  渲染一个Font对象 24617.9.3  使用Rect属性设置文本位置 24717.10  用一种颜色填充一个Surface对象 24817.11  pygame的绘制函数 24917.11.1  绘制一个多边形 24917.11.2  绘制直线 25017.11.3  绘制圆形 25017.11.4  绘制椭圆形 25117.11.5  绘制矩形 25117.11.6  给像素着色 25217.12  Surface对象的blit()方法 25217.13  将Surface对象绘制到屏幕上 25317.14  事件和游戏循环 25317.14.1  获取事件对象 25317.14.2  退出程序 25417.15  小结 254第 18章  动画图形 25518.1  Animation程序的运行示例 25518.2  Animation程序的源代码 25618.3  让积木移动和弹回 25818.4  设置常量变量 25818.4.1  用于方向的常量变量 25918.4.2  用于颜色的常量变量 26018.5  设置积木数据结构 26018.6  游戏循环 26018.6.1  处理玩家退出的情况 26118.6.2  移动每一个积木 26118.6.3  弹跳一个积木 26218.6.4  将积木绘制到窗口中新的位置 26318.6.5  在屏幕上绘制窗口 26418.7  小结 264第 19章  碰撞检测 26519.1  碰撞检测程序的运行示例 26619.2  Collision Detection程序的源代码 26619.3  导入模块 26819.4  使用一个时钟来同步程序 26819.5  创建窗口和数据结构 26919.6  设置变量以记录移动 27019.7  处理事件 27019.7.1  处理KEYDOWN事件 27119.7.2  处理KEYUP事件 27319.8  转移玩家 27419.9  添加新的食物方块 27419.10  在屏幕上移动玩家 27519.10.1  将玩家绘制到屏幕上 27519.10.2  检查碰撞 27619.11  在窗口上绘制食物方块 27619.12  小结 277第 20章  声音和图像 27920.1  使用精灵添加图像 27920.2  声音文件和图像文件 28020.3  Sprites and Sounds程序的运行示例 28120.4  Sprites and Sounds程序的源代码 28120.5  创建窗口和数据结构 28420.5.1  添加一个精灵 28420.5.2  改变一个精灵的大小 28420.6  创建音乐和声音 28520.6.1  添加声音文件 28520.6.2  切换和关闭声音 28520.7  把玩家绘制到窗口上 28620.8  检查碰撞 28620.9  在窗口中绘制樱桃 28720.10  小结 287第 21章  带有声音和图像的Dodger 28921.1  回顾pygame的基本数据 类型 28921.2  Dodger的运行示例 29021.3  Dodger的源代码 29121.4  导入模块 29521.5  创建常量 29521.6  定义函数 29621.6.1  终止和暂停游戏 29621.6.2  记录和敌人的碰撞 29721.6.3  将文本绘制到窗口 29721.7  初始化pygame并设置窗口 29821.8  设置Font、Sound和Image对象 29921.9  显示开始界面 30021.10  开始游戏 30021.11  游戏循环 30221.11.1  处理键盘事件 30221.11.2  处理鼠标移动 30321.12  增加新的敌人 30321.13  移动玩家角色和敌人 30521.14  实现作弊模式 30621.15  删除敌人 30621.16  绘制窗口 30721.16.1  绘制玩家的得分 30721.16.2  绘制玩家角色和敌人 30721.17  碰撞检测 30821.18  游戏结束屏幕 30821.19  修改Dodger游戏 30921.20  小结 310

 

Python编程项目实战三部曲:Python编程快速上手+Python极客项目编程+Python游戏编程快速上手 pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:Python编程项目实战三部曲:Python编程快速上手+Python极客项目编程+Python游戏编程快速上手