Python编程 : 从入门到实践, 第2版 🔍
[美] 埃里克 • 马瑟斯著;袁国忠译
人民邮电出版社, 图灵程序设计丛书, 第2版, 2020
中文 [zh] · MOBI · 9.3MB · 2020 · 📘 非小说类图书 · 🚀/duxiu/lgli/zlib · Save
描述
Downloaded from z-lib.org
备用文件名
zlib/no-category/埃里克·马瑟斯/Python编程:从入门到实践(第2版)_16902880.mobi
备选标题
Python programming from entry to practice 2nd edition(Chinese Edition)
备选标题
Python编程 : 从入门到实践 = Python crash course
备选作者
[ MEI ] AI LI KE · MA SE SI ( EricMatthes ) , YUAN GUO ZHONG YI
备选作者
YUAN GUO ZHONG YI [ MEI ] AI LI KE · MA SE SI ( EricMatthes )
备选作者
马瑟斯 (Matthes, Eric)
备选作者
Eric Matthes
备用出版商
The People's Posts and Telecommunications Publishing House
备用出版商
People Post Press
备用版本
Tu ling cheng xu she ji cong shu, Di 2 ban, Beijing, 2020
备用版本
China, People's Republic, China
备用版本
Jun 01, 2021
备用版本
2021年
元数据中的注释
lg3092995
元数据中的注释
Source title: Python programming from entry to practice 2nd edition(Chinese Edition)
元数据中的注释
Bookmarks: p1 (p2): 第一部分 基础知识
p1-1 (p2): 第1章 起步
p1-1-1 (p2): 1.1 搭建编程环境
p1-1-1-1 (p2): 1.1.1 Python版本
p1-1-1-2 (p2): 1.1.2 运行Python代码片段
p1-1-1-3 (p3): 1.1.3 Sublime Text简介
p1-1-2 (p3): 1.2 在不同操作系统中搭建Python编程环境
p1-1-2-1 (p4): 1.2.1 在Windows系统中搭建Python编程环境
p1-1-2-2 (p5): 1.2.2 在macOS系统中搭建Python编程环境
p1-1-3 (p7): 2.3 在Linux系统中搭建Python编程环境
p1-1-4 (p8): 1.3 运行Hello World程序
p1-1-4-1 (p8): 1.3.1 配置Sublime Text以使用正确的Python版本
p1-1-4-2 (p8): 1.3.2 运行程序hello_world.py
p1-1-5 (p9): 1.4 解决安装问题
p1-1-6 (p9): 1.5 从终端运行Python程序
p1-1-6-1 (p10): 1.5.1 在Windows系统中从终端运行Python程序
p1-1-6-2 (p10): 1.5.2 在Linux和macOS系统中从终端运行Python程序
p1-1-7 (p11): 1.6 小结
p1-2 (p12): 第2章 变量和简单数据类型
p1-2-1 (p12): 2.1 运行hello_world.py时发生的情况
p1-2-2 (p13): 2.2 变量
p1-2-2-1 (p13): 2.2.1 变量的命名和使用
p1-2-2-2 (p14): 2.2.2 使用变量时避免命名错误
p1-2-2-3 (p15): 2.2.3 变量是标签
p1-2-3 (p16): 2.3 字符串
p1-2-3-1 (p16): 2.3.1 使用方法修改字符串的大小写
p1-2-3-2 (p17): 2.3.2 在字符串中使用变量
p1-2-3-3 (p18): 2.3.3 使用制表符或换行符来添加空白
p1-2-3-4 (p19): 2.3.4 删除空白
p1-2-3-5 (p20): 2.3.5 使用字符串时避免语法错误
p1-2-4 (p21): 2.4 数
p1-2-4-1 (p22): 2.4.1 整数
p1-2-4-2 (p22): 2.4.2 浮点数
p1-2-4-3 (p23): 2.4.3 整数和浮点数
p1-2-4-4 (p23): 2.4.4 数中的下划线
p1-2-4-5 (p24): 2.4.5 同时给多个变量赋值
p1-2-4-6 (p24): 2.4.6 常量
p1-2-5 (p25): 2.5 注释
p1-2-5-1 (p25): 2.5.1 如何编写注释
p1-2-5-2 (p25): 2.5.2 该编写什么样的注释
p1-2-6 (p26): 2.6 Python之禅
p1-2-7 (p27): 2.7 小结
p1-3 (p28): 第3章 列表简介
p1-3-1 (p28): 3.1 列表是什么
p1-3-1-1 (p29): 3.1.1 访问列表元素
p1-3-1-2 (p29): 3.1.2 索引从0而不是1开始
p1-3-1-3 (p30): 3.1.3 使用列表中的各个值
p1-3-2 (p31): 3.2 修改、添加和删除元素
p1-3-2-1 (p31): 3.2.1 修改列表元素
p1-3-2-2 (p31): 3.2.2 在列表中添加元素
p1-3-2-3 (p32): 3.2.3 从列表中删除元素
p1-3-3 (p36): 3.3 组织列表
p1-3-3-1 (p37): 3.3.1 使用方法sort()对列表永久排序
p1-3-3-2 (p37): 3.3.2 使用函数sorted()对列表临时排序
p1-3-3-3 (p38): 3.3.3 倒着打印列表
p1-3-3-4 (p38): 3.3.4 确定列表的长度
p1-3-4 (p39): 3.4 使用列表时避免索引错误
p1-3-5 (p41): 3.5 小结
p1-4 (p42): 第4章 操作列表
p1-4-1 (p42): 4.1 遍历整个列表
p1-4-1-1 (p43): 4.1.1 深入研究循环
p1-4-1-2 (p44): 4.1.2 在for循环中执行更多操作
p1-4-1-3 (p45): 4.1.3 在for循环结束后执行一些操作
p1-4-2 (p45): 4.2 避免缩进错误
p1-4-2-1 (p46): 4.2.1 忘记缩进
p1-4-2-2 (p46): 4.2.2 忘记缩进额外的代码行
p1-4-2-3 (p47): 4.2.3 不必要的缩进
p1-4-2-4 (p47): 4.2.4 循环后不必要的缩进
p1-4-2-5 (p48): 4.2.5 遗漏了冒号
p1-4-3 (p49): 4.3 创建数值列表
p1-4-3-1 (p49): 4.3.1 使用函数range()
p1-4-3-2 (p50): 4.3.2 使用range()创建数字列表
p1-4-3-3 (p51): 4.3.3 对数字列表执行简单的统计计算
p1-4-3-4 (p52): 4.3.4 列表解析
p1-4-4 (p53): 4.4 使用列表的一部分
p1-4-4-1 (p53): 4.4.1 切片
p1-4-4-2 (p54): 4.4.2 遍历切片
p1-4-4-3 (p55): 4.4.3 复制列表
p1-4-5 (p57): 4.5 元组
p1-4-5-1 (p57): 4.5.1 定义元组
p1-4-5-2 (p58): 4.5.2 遍历元组中的所有值
p1-4-5-3 (p59): 4.5.3 修改元组变量
p1-4-6 (p60): 4.6 设置代码格式
p1-4-6-1 (p60): 4.6.1 格式设置指南
p1-4-6-2 (p60): 4.6.2 缩进
p1-4-6-3 (p60): 4.6.3 行长
p1-4-6-4 (p61): 4.6.4 空行
p1-4-6-5 (p61): 4.6.5 其他格式设置指南
p1-4-7 (p62): 4.7 小结
p1-5 (p63): 第5章 if语句
p1-5-1 (p63): 5.1 一个简单示例
p1-5-2 (p64): 5.2 条件测试
p1-5-2-1 (p64): 5.2.1 检查是否相等
p1-5-2-2 (p64): 5.2.2 检查是否相等时忽略大小写
p1-5-2-3 (p65): 5.2.3 检查是否不相等
p1-5-2-4 (p66): 5.2.4 数值比较
p1-5-2-5 (p66): 5.2.5 检查多个条件
p1-5-2-6 (p67): 5.2.6 检查特定值是否包含在列表中
p1-5-2-7 (p68): 5.2.7 检查特定值是否不包含在列表中
p1-5-2-8 (p68): 5.2.8 布尔表达式
p1-5-3 (p69): 5.3 if语句
p1-5-3-1 (p69): 5.3.1 简单的if语句
p1-5-3-2 (p70): 5.3.2 if-else语句
p1-5-3-3 (p71): 5.3.3 if-elif-else结构
p1-5-3-4 (p72): 5.3.4 使用多个elif代码块
p1-5-3-5 (p73): 5.3.5 省略else代码块
p1-5-3-6 (p73): 5.3.6 测试多个条件
p1-5-4 (p76): 5.4 使用if语句处理列表
p1-5-4-1 (p76): 5.4.1 检查特殊元素
p1-5-4-2 (p77): 5.4.2 确定列表不是空的
p1-5-4-3 (p77): 5.4.3 使用多个列表
p1-5-5 (p79): 5.5 设置if语句的格式
p1-5-6 (p80): 5.6 小结
p1-6 (p81): 第6章 字典
p1-6-1 (p81): 6.1 一个简单的字典
p1-6-2 (p82): 6.2 使用字典
p1-6-2-1 (p82): 6.2.1 访问字典中的值
p1-6-2-2 (p83): 6.2.2 添加键值对
p1-6-2-3 (p83): 6.2.3 先创建一个空字典
p1-6-2-4 (p84): 6.2.4 修改字典中的值
p1-6-2-5 (p85): 6.2.5 删除键值对
p1-6-2-6 (p86): 6.2.6 由类似对象组成的字典
p1-6-2-7 (p87): 6.2.7 使用get()来访问值
p1-6-3 (p88): 6.3 遍历字典
p1-6-3-1 (p88): 6.3.1 遍历所有键值对
p1-6-3-2 (p90): 6.3.2 遍历字典中的所有键
p1-6-3-3 (p92): 6.3.3 按特定顺序遍历字典中的所有键
p1-6-3-4 (p92): 6.3.4 遍历字典中的所有值
p1-6-4 (p94): 6.4 嵌套
p1-6-4-1 (p94): 6.4.1 字典列表
p1-6-4-2 (p97): 6.4.2 在字典中存储列表
p1-6-4-3 (p98): 6.4.3 在字典中存储字典
p1-6-5 (p100): 6.5 小结
p1-7 (p101): 第7章 用户输入和while循环
p1-7-1 (p101): 7.1 函数input()的工作原理
p1-7-1-1 (p102): 7.1.1 编写清晰的程序
p1-7-1-2 (p102): 7.1.2 使用int()来获取数值输入
p1-7-1-3 (p104): 7.1.3 求模运算符
p1-7-2 (p105): 7.2 while循环简介
p1-7-2-1 (p105): 7.2.1 使用while循环
p1-7-2-2 (p105): 7.2.2 让用户选择何时退出
p1-7-2-3 (p107): 7.2.3 使用标志
p1-7-2-4 (p108): 7.2.4 使用break退出循环
p1-7-2-5 (p109): 7.2.5 在循环中使用continue
p1-7-2-6 (p109): 7.2.6 避免无限循环
p1-7-3 (p111): 7.3 使用while循环处理列表和字典
p1-7-3-1 (p111): 7.3.1 在列表之间移动元素
p1-7-3-2 (p112): 7.3.2 删除为特定值的所有列表元素
p1-7-3-3 (p112): 7.3.3 使用用户输入来填充字典
p1-7-4 (p114): 7.4 小结
p1-8 (p115): 第8章 函数
p1-8-1 (p115): 8.1 定义函数
p1-8-1-1 (p116): 8.1.1 向函数传递信息
p1-8-1-2 (p116): 8.1.2 实参和形参
p1-8-2 (p117): 8.2 传递实参
p1-8-2-1 (p117): 8.2.1 位置实参
p1-8-2-2 (p119): 8.2.2 关键字实参
p1-8-2-3 (p119): 8.2.3 默认值
p1-8-2-4 (p120): 8.2.4 等效的函数调用
p1-8-2-5 (p121): 8.2.5 避免实参错误
p1-8-3 (p122): 8.3 返回值
p1-8-3-1 (p122): 8.3.1 返回简单值
p1-8-3-2 (p123): 8.3.2 让实参变成可选的
p1-8-3-3 (p124): 8.3.3 返回字典
p1-8-3-4 (p125): 8.3.4 结合使用函数和while循环
p1-8-4 (p127): 8.4 传递列表
p1-8-4-1 (p128): 8.4.1 在函数中修改列表
p1-8-4-2 (p130): 8.4.2 禁止函数修改列表
p1-8-5 (p131): 8.5 传递任意数量的实参
p1-8-5-1 (p132): 8.5.1 结合使用位置实参和任意数量实参
p1-8-5-2 (p133): 8.5.2 使用任意数量的关键字实参
p1-8-6 (p134): 8.6 将函数存储在模块中
p1-8-6-1 (p134): 8.6.1 导入整个模块
p1-8-6-2 (p135): 8.6.2 导入特定的函数
p1-8-6-3 (p136): 8.6.3 使用as给函数指定别名
p1-8-6-4 (p136): 8.6.4 使用as给模块指定别名
p1-8-6-5 (p137): 8.6.5 导入模块中的所有函数
p1-8-7 (p137): 8.7 函数编写指南
p1-8-8 (p138): 8.8 小结
p1-9 (p140): 第9章 类
p1-9-1 (p140): 9.1 创建和使用类
p1-9-1-1 (p141): 9.1.1 创建Dog类
p1-9-1-2 (p142): 9.1.2 根据类创建实例
p1-9-2 (p144): 9.2 使用类和实例
p1-9-2-1 (p145): 9.2.1 Car类
p1-9-2-2 (p145): 9.2.2 给属性指定默认值
p1-9-2-3 (p146): 9.2.3 修改属性的值
p1-9-3 (p149): 9.3 继承
p1-9-3-1 (p149): 9.3.1 子类的方法_init_()
p1-9-3-2 (p151): 9.3.2 给子类定义属性和方法
p1-9-3-3 (p152): 9.3.3 重写父类的方法
p1-9-3-4 (p152): 9.3.4 将实例用作属性
p1-9-3-5 (p154): 9.3.5 模拟实物
p1-9-4 (p155): 9.4 导入类
p1-9-4-1 (p155): 9.4.1 导入单个类
p1-9-4-2 (p157): 9.4.2 在一个模块中存储多个类
p1-9-4-3 (p158): 9.4.3 从一个模块中导入多个类
p1-9-4-4 (p158): 9.4.4 导入整个模块
p1-9-4-5 (p159): 9.4.5 导入模块中的所有类
p1-9-4-6 (p159): 9.4.6 在一个模块中导入另一个模块
p1-9-4-7 (p160): 9.4.7 使用别名
p1-9-4-8 (p160): 9.4.8 自定义工作流程
p1-9-5 (p161): 9.5 Python标准库
p1-9-6 (p162): 9.6 类编码风格
p1-9-7 (p163): 9.7 小结
p1-10 (p164): 第10章 文件和异常
p1-10-1 (p164): 10.1 从文件中读取数据
p1-10-1-1 (p164): 10.1.1 读取整个文件
p1-10-1-2 (p166): 10.1.2 文件路径
p1-10-1-3 (p167): 10.1.3 逐行读取
p1-10-1-4 (p168): 10.1.4 创建一个包含文件各行内容的列表
p1-10-1-5 (p168): 10.1.5 使用文件的内容
p1-10-1-6 (p169): 10.1.6 包含一百万位的大型文件
p1-10-1-7 (p170): 10.1.7 圆周率值中包含你的生日吗
p1-10-2 (p171): 10.2 写入文件
p1-10-2-1 (p171): 10.2.1 写入空文件
p1-10-2-2 (p172): 10.2.2 写入多行
p1-10-2-3 (p173): 10.2.3 附加到文件
p1-10-3 (p174): 10.3 异常
p1-10-3-1 (p174): 10.3.1 处理ZeroDivisionError异常
p1-10-3-2 (p174): 10.3.2 使用try-except代码块
p1-10-3-3 (p175): 10.3.3 使用异常避免崩溃
p1-10-3-4 (p176): 10.3.4 else代码块
p1-10-3-5 (p177): 10.3.5 处理FileNotFoundError异常
p1-10-3-6 (p178): 10.3.6 分析文本
p1-10-3-7 (p179): 10.3.7 使用多个文件
p1-10-3-8 (p180): 10.3.8 静默失败
p1-10-3-9 (p181): 10.3.9 决定报告哪些错误
p1-10-4 (p182): 10.4 存储数据
p1-10-4-1 (p182): 10.4.1 使用json.dump()和json.load()
p1-10-4-2 (p183): 10.4.2 保存和读取用户生成的数据
p1-10-4-3 (p185): 10.4.3 重构
p1-10-5 (p187): 10.5 小结
p1-11 (p188): 第11章 测试代码
p1-11-1 (p188): 11.1 测试函数
p1-11-1-1 (p189): 11.1.1 单元测试和测试用例
p1-11-1-2 (p189): 11.1.2 可通过的测试
p1-11-1-3 (p191): 11.1.3 未通过的测试
p1-11-1-4 (p192): 11.1.4 测试未通过时怎么办
p1-11-1-5 (p193): 11.1.5 添加新测试
p1-11-2 (p194): 11.2 测试类
p1-11-2-1 (p194): 11.2.1 各种断言方法
p1-11-2-2 (p195): 11.2.2 一个要测试的类
p1-11-2-3 (p197): 11.2.3 测试AnonymousSurvey类
p1-11-2-4 (p198): 11.2.4 方法setUp()
p1-11-3 (p200): 11.3 小结
p2 (p202): 第二部分 项目
p2-1 (p202): 项目1 外星人入侵
p2-1-1 (p203): 第12章 武装飞船
p2-1-1-1 (p203): 12.1 规划项目
p2-1-1-2 (p204): 12.2 安装Pygame
p2-1-1-3 (p204): 12.3 开始游戏项目
p2-1-1-3-1 (p204): 12.3.1 创建Pygame窗口及响应用户输入
p2-1-1-3-2 (p206): 12.3.2 设置背景色
p2-1-1-3-3 (p207): 12.3.3 创建设置类
p2-1-1-4 (p208): 12.4 添加飞船图像
p2-1-1-4-1 (p209): 12.4.1 创建Ship类
p2-1-1-4-2 (p210): 12.4.2 在屏幕上绘制飞船
p2-1-1-5 (p211): 12.5 重构:方法_check_events()和_update_screen()
p2-1-1-5-1 (p211): 12.5.1 方法_check_events()
p2-1-1-5-2 (p212): 12.5.2 方法_update_screen()
p2-1-1-6 (p213): 12.6 驾驶飞船
p2-1-1-6-1 (p213): 12.6.1 响应按键
p2-1-1-6-2 (p214): 12.6.2 允许持续移动
p2-1-1-6-3 (p215): 12.6.3 左右移动
p2-1-1-6-4 (p216): 12.6.4 调整飞船的速度
p2-1-1-6-5 (p218): 12.6.5 限制飞船的活动范围
p2-1-1-6-6 (p218): 12.6.6 重构_check_events()
p2-1-1-6-7 (p219): 12.6.7 按Q键退出
p2-1-1-6-8 (p219): 12.6.8 在全屏模式下运行游戏
p2-1-1-7 (p220): 12.7 简单回顾
p2-1-1-7-1 (p220): 12.7.1 alien_invasion.py
p2-1-1-7-2 (p220): 12.7.2 settings.py
p2-1-1-7-3 (p220): 12.7.3 ship.py
p2-1-1-8 (p221): 12.8 射击
p2-1-1-8-1 (p221): 12.8.1 添加子弹设置
p2-1-1-8-2 (p221): 12.8.2 创建Bullet类
p2-1-1-8-3 (p223): 12.8.3 将子弹存储到编组中
p2-1-1-8-4 (p223): 12.8.4 开火
p2-1-1-8-5 (p225): 12.8.5 删除消失的子弹
p2-1-1-8-6 (p225): 12.8.6 限制子弹数量
p2-1-1-8-7 (p226): 12.8.7 创建方法_update_bullets()
p2-1-1-9 (p227): 12.9 小结
p2-1-2 (p228): 第13章 外星人来了
p2-1-2-1 (p228): 13.1 项目回顾
p2-1-2-2 (p229): 13.2 创建第一个外星人
p2-1-2-2-1 (p229): 13.2.1 创建Alien类
p2-1-2-2-2 (p230): 13.2.2 创建Alien实例
p2-1-2-3 (p232): 13.3 创建一群外星人
p2-1-2-3-1 (p232): 13.3.1 确定一行可容纳多少个外星人
p2-1-2-3-2 (p232): 13.3.2 创建一行外星人
p2-1-2-3-3 (p234): 13.3.3 重构_create_fleet()
p2-1-2-3-4 (p234): 13.3.4 添加行
p2-1-2-4 (p237): 13.4 让外星人群移动
p2-1-2-4-1 (p237): 13.4.1 向右移动外星人群
p2-1-2-4-2 (p238): 13.4.2 创建表示外星人移动方向的设置
p2-1-2-4-3 (p238): 13.4.3 检查外星人是否撞到了屏幕边缘
p2-1-2-4-4 (p239): 13.4.4 向下移动外星人群并改变移动方向
p2-1-2-5 (p240): 13.5 射杀外星人
p2-1-2-5-1 (p240): 13.5.1 检测子弹与外星人的碰撞
p2-1-2-5-2 (p241): 13.5.2 为测试创建大子弹
p2-1-2-5-3 (p242): 13.5.3 生成新的外星人群
p2-1-2-5-4 (p243): 13.5.4 提高子弹的速度
p2-1-2-5-5 (p243): 13.5.5 重构_update_bullets()
p2-1-2-6 (p244): 13.6 结束游戏
p2-1-2-6-1 (p244): 13.6.1 检测外星人和飞船碰撞
p2-1-2-6-2 (p245): 13.6.2 响应外星人和飞船碰撞
p2-1-2-6-3 (p247): 13.6.3 有外星人到达屏幕底端
p2-1-2-6-4 (p248): 13.6.4 游戏结束
p2-1-2-7 (p248): 13.7 确定应运行游戏的哪些部分
p2-1-2-8 (p249): 13.8 小结
p2-1-3 (p250): 第14章 记分
p2-1-3-1 (p250): 14.1 添加Play按钮
p2-1-3-1-1 (p250): 14.1.1 创建Button类
p2-1-3-1-2 (p252): 14.1.2 在屏幕上绘制按钮
p2-1-3-1-3 (p253): 14.1.3 开始游戏
p2-1-3-1-4 (p254): 14.1.4 重置游戏
p2-1-3-1-5 (p254): 14.1.5 将Play按钮切换到非活动状态
p2-1-3-1-6 (p255): 14.1.6 隐藏鼠标光标
p2-1-3-2 (p256): 14.2 提高等级
p2-1-3-2-1 (p256): 14.2.1 修改速度设置
p2-1-3-2-2 (p258): 14.2.2 重置速度
p2-1-3-3 (p258): 14.3 记分
p2-1-3-3-1 (p259): 14.3.1 显示得分
p2-1-3-3-2 (p260): 14.3.2 创建记分牌
p2-1-3-3-3 (p261): 14.3.3 在外星人被消灭时更新得分
p2-1-3-3-4 (p262): 14.3.4 重置得分
p2-1-3-3-5 (p262): 14.3.5 将消灭的每个外星人都计入得分
p2-1-3-3-6 (p263): 14.3.6 提高分数
p2-1-3-3-7 (p264): 14.3.7 舍入得分
p2-1-3-3-8 (p265): 14.3.8 最高得分
p2-1-3-3-9 (p267): 14.3.9 显示等级
p2-1-3-3-10 (p269): 14.3.10 显示余下的飞船数
p2-1-3-4 (p272): 14.4 小结
p2-2 (p273): 项目2 数据可视化
p2-2-1 (p274): 第15章 生成数据
p2-2-1-1 (p274): 15.1 安装Matplotlib
p2-2-1-2 (p275): 15.2 绘制简单的折线图
p2-2-1-2-1 (p276): 15.2.1 修改标签文字和线条粗细
p2-2-1-2-2 (p277): 15.2.2 校正图形
p2-2-1-2-3 (p278): 15.2.3 使用内置样式
p2-2-1-2-4 (p279): 15.2.4 使用scatter()绘制散点图并设置样式
p2-2-1-2-5 (p280): 15.2.5 使用scatter()绘制一系列点
p2-2-1-2-6 (p281): 15.2.6 自动计算数据
p2-2-1-2-7 (p282): 15.2.7 自定义颜色
p2-2-1-2-8 (p283): 15.2.8 使用颜色映射
p2-2-1-2-9 (p284): 15.2.9 自动保存图表
p2-2-1-3 (p284): 15.3 随机漫步
p2-2-1-3-1 (p284): 15.3.1 创建RandomWalk类
p2-2-1-3-2 (p285): 15.3.2 选择方向
p2-2-1-3-3 (p286): 15.3.3 绘制随机漫步图
p2-2-1-3-4 (p287): 15.3.4 模拟多次随机漫步
p2-2-1-3-5 (p288): 15.3.5 设置随机漫步图的样式
p2-2-1-4 (p292): 15.4 使用Plotly模拟掷骰子
p2-2-1-4-1 (p292): 15.4.1 安装Plotly
p2-2-1-4-2 (p293): 15.4.2 创建Die类
p2-2-1-4-3 (p293): 15.4.3 掷骰子
p2-2-1-4-4 (p294): 15.4.4 分析结果
p2-2-1-4-5 (p294): 15.4.5 绘制直方图
p2-2-1-4-6 (p296): 15.4.6 同时掷两个骰子
p2-2-1-4-7 (p298): 15.4.7 同时掷两个面数不同的骰子
p2-2-1-5 (p300): 15.5 小结
p2-2-2 (p301): 第16章 下载数据
p2-2-2-1 (p301): 16.1 CSV文件格式
p2-2-2-1-1 (p302): 16.1.1 分析CSV文件头
p2-2-2-1-2 (p302): 16.1.2 打印文件头及其位置
p2-2-2-1-3 (p303): 16.1.3 提取并读取数据
p2-2-2-1-4 (p304): 16.1.4 绘制温度图表
p2-2-2-1-5 (p305): 16.1.5 模块datetime
p2-2-2-1-6 (p306): 16.1.6 在图表中添加日期
p2-2-2-1-7 (p307): 16.1.7 涵盖更长的时间
p2-2-2-1-8 (p308): 16.1.8 再绘制一个数据系列
p2-2-2-1-9 (p309): 16.1.9 给图表区域着色
p2-2-2-1-10 (p310): 16.1.10 错误检查
p2-2-2-1-11 (p313): 16.1.11 自己动手下载数据
p2-2-2-2 (p314): 16.2 制作全球地震散点图:JSON格式
p2-2-2-2-1 (p315): 16.2.1 地震数据
p2-2-2-2-2 (p315): 16.2.2 查看JSON数据
p2-2-2-2-3 (p317): 16.2.3 创建地震列表
p2-2-2-2-4 (p317): 16.2.4 提取震级
p2-2-2-2-5 (p318): 16.2.5 提取位置数据
p2-2-2-2-6 (p319): 16.2.6 绘制震级散点图
p2-2-2-2-7 (p320): 16.2.7 另一种指定图表数据的方式
p2-2-2-2-8 (p321): 16.2.8 定制标记的尺寸
p2-2-2-2-9 (p322): 16.2.9 定制标记的颜色
p2-2-2-2-10 (p323): 16.2.10 其他渐变
p2-2-2-2-11 (p324): 16.2.11 添加鼠标指向时显示的文本
p2-2-2-3 (p325): 16.3 小结
p2-2-3 (p326): 第17章 使用API
p2-2-3-1 (p326): 17.1 使用Web API
p2-2-3-1-1 (p326): 17.1.1 Git和GitHub
p2-2-3-1-2 (p327): 17.1.2 使用API调用请求数据
p2-2-3-1-3 (p327): 17.1.3 安装Requests
p2-2-3-1-4 (p328): 17.1.4 处理API响应
p2-2-3-1-5 (p329): 17.1.5 处理响应字典
p2-2-3-1-6 (p331): 17.1.6 概述最受欢迎的仓库
p2-2-3-1-7 (p332): 17.1.7 监视API的速率限制
p2-2-3-2 (p332): 17.2 使用Plotly可视化仓库
p2-2-3-2-1 (p334): 17.2.1 改进Plotly图表
p2-2-3-2-2 (p336): 17.2.2 添加自定义工具提示
p2-2-3-2-3 (p337): 17.2.3 在图表中添加可单击的链接
p2-2-3-2-4 (p338): 17.2.4 深入了解Plotly和GitHub API
p2-2-3-3 (p338): 17.3 Hacker News API
p2-2-3-4 (p341): 17.4 小结
p2-3 (p342): 项目3 Web应用程序
p2-3-1 (p343): 第18章 从Django入手
p2-3-1-1 (p343): 18.1 建立项目
p2-3-1-1-1 (p343): 18.1.1 制定规范
p2-3-1-1-2 (p344): 18.1.2 建立虚拟环境
p2-3-1-1-3 (p344): 18.1.3 激活虚拟环境
p2-3-1-1-4 (p345): 18.1.4 安装Django
p2-3-1-1-5 (p345): 18.1.5 在Django中创建项目
p2-3-1-1-6 (p346): 18.1.6 创建数据库
p2-3-1-1-7 (p346): 18.1.7 查看项目
p2-3-1-2 (p348): 18.2 创建应用程序
p2-3-1-2-1 (p348): 18.2.1 定义模型
p2-3-1-2-2 (p349): 18.2.2 激活模型
p2-3-1-2-3 (p351): 18.2.3 Django管理网站
p2-3-1-2-4 (p353): 18.2.4 定义模型Entry
p2-3-1-2-5 (p354): 18.2.5 迁移模型Entry
p2-3-1-2-6 (p354): 18.2.6 向管理网站注册Entry
p2-3-1-2-7 (p355): 18.2.7 Django shell
p2-3-1-3 (p357): 18.3 创建页面:学习笔记主页
p2-3-1-3-1 (p358): 18.3.1 映射URL
p2-3-1-3-2 (p359): 18.3.2 编写视图
p2-3-1-3-3 (p360): 18.3.3 编写模板
p2-3-1-4 (p361): 18.4 创建其他页面
p2-3-1-4-1 (p361): 18.4.1 模板继承
p2-3-1-4-2 (p363): 18.4.2 显示所有主题的页面
p2-3-1-4-3 (p366): 18.4.3 显示特定主题的页面
p2-3-1-5 (p369): 18.5 小结
p2-3-2 (p370): 第19章 用户账户
p2-3-2-1 (p370): 19.1 让用户输入数据
p2-3-2-1-1 (p370): 19.1.1 添加新主题
p2-3-2-1-2 (p374): 19.1.2 添加新条目
p2-3-2-1-3 (p378): 19.1.3 编辑条目
p2-3-2-2 (p381): 19.2 创建用户账户
p2-3-2-2-1 (p381): 19.2.1 应用程序users
p2-3-2-2-2 (p381): 19.2.2 将users添加到settings.py中
p2-3-2-2-3 (p382): 19.2.3 包含users的URL
p2-3-2-2-4 (p382): 19.2.4 登录页面
p2-3-2-2-5 (p384): 19.2.5 注销
p2-3-2-2-6 (p386): 19.2.6 注册页面
p2-3-2-3 (p388): 19.3 让用户拥有自己的数据
p2-3-2-3-1 (p388): 19.3.1 使用@login_required限制访问
p2-3-2-3-2 (p390): 19.3.2 将数据关联到用户
p2-3-2-3-3 (p393): 19.3.3 只允许用户访问自己的主题
p2-3-2-3-4 (p393): 19.3.4 保护用户的主题
p2-3-2-3-5 (p394): 19.3.5 保护页面edit_entry
p2-3-2-3-6 (p394): 19.3.6 将新主题关联到当前用户
p2-3-2-4 (p396): 19.4 小结
p2-3-3 (p397): 第20章 设置应用程序的样式并部署
p2-3-3-1 (p397): 20.1 设置项目“学习笔记”的样式
p2-3-3-1-1 (p398): 20.1.1 应用程序django-bootstrap4
p2-3-3-1-2 (p398): 20.1.2 使用Bootstrap设置项目“学习笔记”的样式
p2-3-3-1-3 (p399): 20.1.3 修改base.html
p2-3-3-1-4 (p403): 20.1.4 使用jumbotron设置主页的样式
p2-3-3-1-5 (p404): 20.1.5 设置登录页面的样式
p2-3-3-1-6 (p405): 20.1.6 设置显示所有主题的页面的样式
p2-3-3-1-7 (p406): 20.1.7 设置显示单个主题的页面中的条目样式
p2-3-3-2 (p407): 20.2 部署“学习笔记”
p2-3-3-2-1 (p408): 20.2.1 建立Heroku账户
p2-3-3-2-2 (p408): 20.2.2 安装Heroku CLI
p2-3-3-2-3 (p408): 20.2.3 安装必要的包
p2-3-3-2-4 (p408): 20.2.4 创建文件requirements.txt
p2-3-3-2-5 (p409): 20.2.5 指定Python版本
p2-3-3-2-6 (p410): 20.2.6 为部署到Heroku而修改settings.py
p2-3-3-2-7 (p410): 20.2.7 创建启动进程的Procfile
p2-3-3-2-8 (p410): 20.2.8 使用Git跟踪项目文件
p2-3-3-2-9 (p412): 20.2.9 推送到Heroku
p2-3-3-2-10 (p414): 20.2.10 在Heroku上建立数据库
p2-3-3-2-11 (p414): 20.2.11 改进Heroku部署
p2-3-3-2-12 (p416): 20.2.12 确保项目的安全
p2-3-3-2-13 (p416): 20.2.13 提交并推送修改
p2-3-3-2-14 (p417): 20.2.14 在Heroku上设置环境变量
p2-3-3-2-15 (p418): 20.2.15 创建自定义错误页面
p2-3-3-2-16 (p420): 20.2.16 继续开发
p2-3-3-2-17 (p421): 20.2.17 设置SECRET_KEY
p2-3-3-2-18 (p421): 20.2.18 将项目从Heroku删除
p2-3-3-3 (p422): 20.3 小结
p3 (p423): 附录A 安装与故障排除
p4 (p428): 附录B 文本编辑器与IDE
p5 (p432): 附录C 寻求帮助
p6 (p436): 附录D 使用Git进行版本控制
p7 (p445): 后记
p1-1 (p2): 第1章 起步
p1-1-1 (p2): 1.1 搭建编程环境
p1-1-1-1 (p2): 1.1.1 Python版本
p1-1-1-2 (p2): 1.1.2 运行Python代码片段
p1-1-1-3 (p3): 1.1.3 Sublime Text简介
p1-1-2 (p3): 1.2 在不同操作系统中搭建Python编程环境
p1-1-2-1 (p4): 1.2.1 在Windows系统中搭建Python编程环境
p1-1-2-2 (p5): 1.2.2 在macOS系统中搭建Python编程环境
p1-1-3 (p7): 2.3 在Linux系统中搭建Python编程环境
p1-1-4 (p8): 1.3 运行Hello World程序
p1-1-4-1 (p8): 1.3.1 配置Sublime Text以使用正确的Python版本
p1-1-4-2 (p8): 1.3.2 运行程序hello_world.py
p1-1-5 (p9): 1.4 解决安装问题
p1-1-6 (p9): 1.5 从终端运行Python程序
p1-1-6-1 (p10): 1.5.1 在Windows系统中从终端运行Python程序
p1-1-6-2 (p10): 1.5.2 在Linux和macOS系统中从终端运行Python程序
p1-1-7 (p11): 1.6 小结
p1-2 (p12): 第2章 变量和简单数据类型
p1-2-1 (p12): 2.1 运行hello_world.py时发生的情况
p1-2-2 (p13): 2.2 变量
p1-2-2-1 (p13): 2.2.1 变量的命名和使用
p1-2-2-2 (p14): 2.2.2 使用变量时避免命名错误
p1-2-2-3 (p15): 2.2.3 变量是标签
p1-2-3 (p16): 2.3 字符串
p1-2-3-1 (p16): 2.3.1 使用方法修改字符串的大小写
p1-2-3-2 (p17): 2.3.2 在字符串中使用变量
p1-2-3-3 (p18): 2.3.3 使用制表符或换行符来添加空白
p1-2-3-4 (p19): 2.3.4 删除空白
p1-2-3-5 (p20): 2.3.5 使用字符串时避免语法错误
p1-2-4 (p21): 2.4 数
p1-2-4-1 (p22): 2.4.1 整数
p1-2-4-2 (p22): 2.4.2 浮点数
p1-2-4-3 (p23): 2.4.3 整数和浮点数
p1-2-4-4 (p23): 2.4.4 数中的下划线
p1-2-4-5 (p24): 2.4.5 同时给多个变量赋值
p1-2-4-6 (p24): 2.4.6 常量
p1-2-5 (p25): 2.5 注释
p1-2-5-1 (p25): 2.5.1 如何编写注释
p1-2-5-2 (p25): 2.5.2 该编写什么样的注释
p1-2-6 (p26): 2.6 Python之禅
p1-2-7 (p27): 2.7 小结
p1-3 (p28): 第3章 列表简介
p1-3-1 (p28): 3.1 列表是什么
p1-3-1-1 (p29): 3.1.1 访问列表元素
p1-3-1-2 (p29): 3.1.2 索引从0而不是1开始
p1-3-1-3 (p30): 3.1.3 使用列表中的各个值
p1-3-2 (p31): 3.2 修改、添加和删除元素
p1-3-2-1 (p31): 3.2.1 修改列表元素
p1-3-2-2 (p31): 3.2.2 在列表中添加元素
p1-3-2-3 (p32): 3.2.3 从列表中删除元素
p1-3-3 (p36): 3.3 组织列表
p1-3-3-1 (p37): 3.3.1 使用方法sort()对列表永久排序
p1-3-3-2 (p37): 3.3.2 使用函数sorted()对列表临时排序
p1-3-3-3 (p38): 3.3.3 倒着打印列表
p1-3-3-4 (p38): 3.3.4 确定列表的长度
p1-3-4 (p39): 3.4 使用列表时避免索引错误
p1-3-5 (p41): 3.5 小结
p1-4 (p42): 第4章 操作列表
p1-4-1 (p42): 4.1 遍历整个列表
p1-4-1-1 (p43): 4.1.1 深入研究循环
p1-4-1-2 (p44): 4.1.2 在for循环中执行更多操作
p1-4-1-3 (p45): 4.1.3 在for循环结束后执行一些操作
p1-4-2 (p45): 4.2 避免缩进错误
p1-4-2-1 (p46): 4.2.1 忘记缩进
p1-4-2-2 (p46): 4.2.2 忘记缩进额外的代码行
p1-4-2-3 (p47): 4.2.3 不必要的缩进
p1-4-2-4 (p47): 4.2.4 循环后不必要的缩进
p1-4-2-5 (p48): 4.2.5 遗漏了冒号
p1-4-3 (p49): 4.3 创建数值列表
p1-4-3-1 (p49): 4.3.1 使用函数range()
p1-4-3-2 (p50): 4.3.2 使用range()创建数字列表
p1-4-3-3 (p51): 4.3.3 对数字列表执行简单的统计计算
p1-4-3-4 (p52): 4.3.4 列表解析
p1-4-4 (p53): 4.4 使用列表的一部分
p1-4-4-1 (p53): 4.4.1 切片
p1-4-4-2 (p54): 4.4.2 遍历切片
p1-4-4-3 (p55): 4.4.3 复制列表
p1-4-5 (p57): 4.5 元组
p1-4-5-1 (p57): 4.5.1 定义元组
p1-4-5-2 (p58): 4.5.2 遍历元组中的所有值
p1-4-5-3 (p59): 4.5.3 修改元组变量
p1-4-6 (p60): 4.6 设置代码格式
p1-4-6-1 (p60): 4.6.1 格式设置指南
p1-4-6-2 (p60): 4.6.2 缩进
p1-4-6-3 (p60): 4.6.3 行长
p1-4-6-4 (p61): 4.6.4 空行
p1-4-6-5 (p61): 4.6.5 其他格式设置指南
p1-4-7 (p62): 4.7 小结
p1-5 (p63): 第5章 if语句
p1-5-1 (p63): 5.1 一个简单示例
p1-5-2 (p64): 5.2 条件测试
p1-5-2-1 (p64): 5.2.1 检查是否相等
p1-5-2-2 (p64): 5.2.2 检查是否相等时忽略大小写
p1-5-2-3 (p65): 5.2.3 检查是否不相等
p1-5-2-4 (p66): 5.2.4 数值比较
p1-5-2-5 (p66): 5.2.5 检查多个条件
p1-5-2-6 (p67): 5.2.6 检查特定值是否包含在列表中
p1-5-2-7 (p68): 5.2.7 检查特定值是否不包含在列表中
p1-5-2-8 (p68): 5.2.8 布尔表达式
p1-5-3 (p69): 5.3 if语句
p1-5-3-1 (p69): 5.3.1 简单的if语句
p1-5-3-2 (p70): 5.3.2 if-else语句
p1-5-3-3 (p71): 5.3.3 if-elif-else结构
p1-5-3-4 (p72): 5.3.4 使用多个elif代码块
p1-5-3-5 (p73): 5.3.5 省略else代码块
p1-5-3-6 (p73): 5.3.6 测试多个条件
p1-5-4 (p76): 5.4 使用if语句处理列表
p1-5-4-1 (p76): 5.4.1 检查特殊元素
p1-5-4-2 (p77): 5.4.2 确定列表不是空的
p1-5-4-3 (p77): 5.4.3 使用多个列表
p1-5-5 (p79): 5.5 设置if语句的格式
p1-5-6 (p80): 5.6 小结
p1-6 (p81): 第6章 字典
p1-6-1 (p81): 6.1 一个简单的字典
p1-6-2 (p82): 6.2 使用字典
p1-6-2-1 (p82): 6.2.1 访问字典中的值
p1-6-2-2 (p83): 6.2.2 添加键值对
p1-6-2-3 (p83): 6.2.3 先创建一个空字典
p1-6-2-4 (p84): 6.2.4 修改字典中的值
p1-6-2-5 (p85): 6.2.5 删除键值对
p1-6-2-6 (p86): 6.2.6 由类似对象组成的字典
p1-6-2-7 (p87): 6.2.7 使用get()来访问值
p1-6-3 (p88): 6.3 遍历字典
p1-6-3-1 (p88): 6.3.1 遍历所有键值对
p1-6-3-2 (p90): 6.3.2 遍历字典中的所有键
p1-6-3-3 (p92): 6.3.3 按特定顺序遍历字典中的所有键
p1-6-3-4 (p92): 6.3.4 遍历字典中的所有值
p1-6-4 (p94): 6.4 嵌套
p1-6-4-1 (p94): 6.4.1 字典列表
p1-6-4-2 (p97): 6.4.2 在字典中存储列表
p1-6-4-3 (p98): 6.4.3 在字典中存储字典
p1-6-5 (p100): 6.5 小结
p1-7 (p101): 第7章 用户输入和while循环
p1-7-1 (p101): 7.1 函数input()的工作原理
p1-7-1-1 (p102): 7.1.1 编写清晰的程序
p1-7-1-2 (p102): 7.1.2 使用int()来获取数值输入
p1-7-1-3 (p104): 7.1.3 求模运算符
p1-7-2 (p105): 7.2 while循环简介
p1-7-2-1 (p105): 7.2.1 使用while循环
p1-7-2-2 (p105): 7.2.2 让用户选择何时退出
p1-7-2-3 (p107): 7.2.3 使用标志
p1-7-2-4 (p108): 7.2.4 使用break退出循环
p1-7-2-5 (p109): 7.2.5 在循环中使用continue
p1-7-2-6 (p109): 7.2.6 避免无限循环
p1-7-3 (p111): 7.3 使用while循环处理列表和字典
p1-7-3-1 (p111): 7.3.1 在列表之间移动元素
p1-7-3-2 (p112): 7.3.2 删除为特定值的所有列表元素
p1-7-3-3 (p112): 7.3.3 使用用户输入来填充字典
p1-7-4 (p114): 7.4 小结
p1-8 (p115): 第8章 函数
p1-8-1 (p115): 8.1 定义函数
p1-8-1-1 (p116): 8.1.1 向函数传递信息
p1-8-1-2 (p116): 8.1.2 实参和形参
p1-8-2 (p117): 8.2 传递实参
p1-8-2-1 (p117): 8.2.1 位置实参
p1-8-2-2 (p119): 8.2.2 关键字实参
p1-8-2-3 (p119): 8.2.3 默认值
p1-8-2-4 (p120): 8.2.4 等效的函数调用
p1-8-2-5 (p121): 8.2.5 避免实参错误
p1-8-3 (p122): 8.3 返回值
p1-8-3-1 (p122): 8.3.1 返回简单值
p1-8-3-2 (p123): 8.3.2 让实参变成可选的
p1-8-3-3 (p124): 8.3.3 返回字典
p1-8-3-4 (p125): 8.3.4 结合使用函数和while循环
p1-8-4 (p127): 8.4 传递列表
p1-8-4-1 (p128): 8.4.1 在函数中修改列表
p1-8-4-2 (p130): 8.4.2 禁止函数修改列表
p1-8-5 (p131): 8.5 传递任意数量的实参
p1-8-5-1 (p132): 8.5.1 结合使用位置实参和任意数量实参
p1-8-5-2 (p133): 8.5.2 使用任意数量的关键字实参
p1-8-6 (p134): 8.6 将函数存储在模块中
p1-8-6-1 (p134): 8.6.1 导入整个模块
p1-8-6-2 (p135): 8.6.2 导入特定的函数
p1-8-6-3 (p136): 8.6.3 使用as给函数指定别名
p1-8-6-4 (p136): 8.6.4 使用as给模块指定别名
p1-8-6-5 (p137): 8.6.5 导入模块中的所有函数
p1-8-7 (p137): 8.7 函数编写指南
p1-8-8 (p138): 8.8 小结
p1-9 (p140): 第9章 类
p1-9-1 (p140): 9.1 创建和使用类
p1-9-1-1 (p141): 9.1.1 创建Dog类
p1-9-1-2 (p142): 9.1.2 根据类创建实例
p1-9-2 (p144): 9.2 使用类和实例
p1-9-2-1 (p145): 9.2.1 Car类
p1-9-2-2 (p145): 9.2.2 给属性指定默认值
p1-9-2-3 (p146): 9.2.3 修改属性的值
p1-9-3 (p149): 9.3 继承
p1-9-3-1 (p149): 9.3.1 子类的方法_init_()
p1-9-3-2 (p151): 9.3.2 给子类定义属性和方法
p1-9-3-3 (p152): 9.3.3 重写父类的方法
p1-9-3-4 (p152): 9.3.4 将实例用作属性
p1-9-3-5 (p154): 9.3.5 模拟实物
p1-9-4 (p155): 9.4 导入类
p1-9-4-1 (p155): 9.4.1 导入单个类
p1-9-4-2 (p157): 9.4.2 在一个模块中存储多个类
p1-9-4-3 (p158): 9.4.3 从一个模块中导入多个类
p1-9-4-4 (p158): 9.4.4 导入整个模块
p1-9-4-5 (p159): 9.4.5 导入模块中的所有类
p1-9-4-6 (p159): 9.4.6 在一个模块中导入另一个模块
p1-9-4-7 (p160): 9.4.7 使用别名
p1-9-4-8 (p160): 9.4.8 自定义工作流程
p1-9-5 (p161): 9.5 Python标准库
p1-9-6 (p162): 9.6 类编码风格
p1-9-7 (p163): 9.7 小结
p1-10 (p164): 第10章 文件和异常
p1-10-1 (p164): 10.1 从文件中读取数据
p1-10-1-1 (p164): 10.1.1 读取整个文件
p1-10-1-2 (p166): 10.1.2 文件路径
p1-10-1-3 (p167): 10.1.3 逐行读取
p1-10-1-4 (p168): 10.1.4 创建一个包含文件各行内容的列表
p1-10-1-5 (p168): 10.1.5 使用文件的内容
p1-10-1-6 (p169): 10.1.6 包含一百万位的大型文件
p1-10-1-7 (p170): 10.1.7 圆周率值中包含你的生日吗
p1-10-2 (p171): 10.2 写入文件
p1-10-2-1 (p171): 10.2.1 写入空文件
p1-10-2-2 (p172): 10.2.2 写入多行
p1-10-2-3 (p173): 10.2.3 附加到文件
p1-10-3 (p174): 10.3 异常
p1-10-3-1 (p174): 10.3.1 处理ZeroDivisionError异常
p1-10-3-2 (p174): 10.3.2 使用try-except代码块
p1-10-3-3 (p175): 10.3.3 使用异常避免崩溃
p1-10-3-4 (p176): 10.3.4 else代码块
p1-10-3-5 (p177): 10.3.5 处理FileNotFoundError异常
p1-10-3-6 (p178): 10.3.6 分析文本
p1-10-3-7 (p179): 10.3.7 使用多个文件
p1-10-3-8 (p180): 10.3.8 静默失败
p1-10-3-9 (p181): 10.3.9 决定报告哪些错误
p1-10-4 (p182): 10.4 存储数据
p1-10-4-1 (p182): 10.4.1 使用json.dump()和json.load()
p1-10-4-2 (p183): 10.4.2 保存和读取用户生成的数据
p1-10-4-3 (p185): 10.4.3 重构
p1-10-5 (p187): 10.5 小结
p1-11 (p188): 第11章 测试代码
p1-11-1 (p188): 11.1 测试函数
p1-11-1-1 (p189): 11.1.1 单元测试和测试用例
p1-11-1-2 (p189): 11.1.2 可通过的测试
p1-11-1-3 (p191): 11.1.3 未通过的测试
p1-11-1-4 (p192): 11.1.4 测试未通过时怎么办
p1-11-1-5 (p193): 11.1.5 添加新测试
p1-11-2 (p194): 11.2 测试类
p1-11-2-1 (p194): 11.2.1 各种断言方法
p1-11-2-2 (p195): 11.2.2 一个要测试的类
p1-11-2-3 (p197): 11.2.3 测试AnonymousSurvey类
p1-11-2-4 (p198): 11.2.4 方法setUp()
p1-11-3 (p200): 11.3 小结
p2 (p202): 第二部分 项目
p2-1 (p202): 项目1 外星人入侵
p2-1-1 (p203): 第12章 武装飞船
p2-1-1-1 (p203): 12.1 规划项目
p2-1-1-2 (p204): 12.2 安装Pygame
p2-1-1-3 (p204): 12.3 开始游戏项目
p2-1-1-3-1 (p204): 12.3.1 创建Pygame窗口及响应用户输入
p2-1-1-3-2 (p206): 12.3.2 设置背景色
p2-1-1-3-3 (p207): 12.3.3 创建设置类
p2-1-1-4 (p208): 12.4 添加飞船图像
p2-1-1-4-1 (p209): 12.4.1 创建Ship类
p2-1-1-4-2 (p210): 12.4.2 在屏幕上绘制飞船
p2-1-1-5 (p211): 12.5 重构:方法_check_events()和_update_screen()
p2-1-1-5-1 (p211): 12.5.1 方法_check_events()
p2-1-1-5-2 (p212): 12.5.2 方法_update_screen()
p2-1-1-6 (p213): 12.6 驾驶飞船
p2-1-1-6-1 (p213): 12.6.1 响应按键
p2-1-1-6-2 (p214): 12.6.2 允许持续移动
p2-1-1-6-3 (p215): 12.6.3 左右移动
p2-1-1-6-4 (p216): 12.6.4 调整飞船的速度
p2-1-1-6-5 (p218): 12.6.5 限制飞船的活动范围
p2-1-1-6-6 (p218): 12.6.6 重构_check_events()
p2-1-1-6-7 (p219): 12.6.7 按Q键退出
p2-1-1-6-8 (p219): 12.6.8 在全屏模式下运行游戏
p2-1-1-7 (p220): 12.7 简单回顾
p2-1-1-7-1 (p220): 12.7.1 alien_invasion.py
p2-1-1-7-2 (p220): 12.7.2 settings.py
p2-1-1-7-3 (p220): 12.7.3 ship.py
p2-1-1-8 (p221): 12.8 射击
p2-1-1-8-1 (p221): 12.8.1 添加子弹设置
p2-1-1-8-2 (p221): 12.8.2 创建Bullet类
p2-1-1-8-3 (p223): 12.8.3 将子弹存储到编组中
p2-1-1-8-4 (p223): 12.8.4 开火
p2-1-1-8-5 (p225): 12.8.5 删除消失的子弹
p2-1-1-8-6 (p225): 12.8.6 限制子弹数量
p2-1-1-8-7 (p226): 12.8.7 创建方法_update_bullets()
p2-1-1-9 (p227): 12.9 小结
p2-1-2 (p228): 第13章 外星人来了
p2-1-2-1 (p228): 13.1 项目回顾
p2-1-2-2 (p229): 13.2 创建第一个外星人
p2-1-2-2-1 (p229): 13.2.1 创建Alien类
p2-1-2-2-2 (p230): 13.2.2 创建Alien实例
p2-1-2-3 (p232): 13.3 创建一群外星人
p2-1-2-3-1 (p232): 13.3.1 确定一行可容纳多少个外星人
p2-1-2-3-2 (p232): 13.3.2 创建一行外星人
p2-1-2-3-3 (p234): 13.3.3 重构_create_fleet()
p2-1-2-3-4 (p234): 13.3.4 添加行
p2-1-2-4 (p237): 13.4 让外星人群移动
p2-1-2-4-1 (p237): 13.4.1 向右移动外星人群
p2-1-2-4-2 (p238): 13.4.2 创建表示外星人移动方向的设置
p2-1-2-4-3 (p238): 13.4.3 检查外星人是否撞到了屏幕边缘
p2-1-2-4-4 (p239): 13.4.4 向下移动外星人群并改变移动方向
p2-1-2-5 (p240): 13.5 射杀外星人
p2-1-2-5-1 (p240): 13.5.1 检测子弹与外星人的碰撞
p2-1-2-5-2 (p241): 13.5.2 为测试创建大子弹
p2-1-2-5-3 (p242): 13.5.3 生成新的外星人群
p2-1-2-5-4 (p243): 13.5.4 提高子弹的速度
p2-1-2-5-5 (p243): 13.5.5 重构_update_bullets()
p2-1-2-6 (p244): 13.6 结束游戏
p2-1-2-6-1 (p244): 13.6.1 检测外星人和飞船碰撞
p2-1-2-6-2 (p245): 13.6.2 响应外星人和飞船碰撞
p2-1-2-6-3 (p247): 13.6.3 有外星人到达屏幕底端
p2-1-2-6-4 (p248): 13.6.4 游戏结束
p2-1-2-7 (p248): 13.7 确定应运行游戏的哪些部分
p2-1-2-8 (p249): 13.8 小结
p2-1-3 (p250): 第14章 记分
p2-1-3-1 (p250): 14.1 添加Play按钮
p2-1-3-1-1 (p250): 14.1.1 创建Button类
p2-1-3-1-2 (p252): 14.1.2 在屏幕上绘制按钮
p2-1-3-1-3 (p253): 14.1.3 开始游戏
p2-1-3-1-4 (p254): 14.1.4 重置游戏
p2-1-3-1-5 (p254): 14.1.5 将Play按钮切换到非活动状态
p2-1-3-1-6 (p255): 14.1.6 隐藏鼠标光标
p2-1-3-2 (p256): 14.2 提高等级
p2-1-3-2-1 (p256): 14.2.1 修改速度设置
p2-1-3-2-2 (p258): 14.2.2 重置速度
p2-1-3-3 (p258): 14.3 记分
p2-1-3-3-1 (p259): 14.3.1 显示得分
p2-1-3-3-2 (p260): 14.3.2 创建记分牌
p2-1-3-3-3 (p261): 14.3.3 在外星人被消灭时更新得分
p2-1-3-3-4 (p262): 14.3.4 重置得分
p2-1-3-3-5 (p262): 14.3.5 将消灭的每个外星人都计入得分
p2-1-3-3-6 (p263): 14.3.6 提高分数
p2-1-3-3-7 (p264): 14.3.7 舍入得分
p2-1-3-3-8 (p265): 14.3.8 最高得分
p2-1-3-3-9 (p267): 14.3.9 显示等级
p2-1-3-3-10 (p269): 14.3.10 显示余下的飞船数
p2-1-3-4 (p272): 14.4 小结
p2-2 (p273): 项目2 数据可视化
p2-2-1 (p274): 第15章 生成数据
p2-2-1-1 (p274): 15.1 安装Matplotlib
p2-2-1-2 (p275): 15.2 绘制简单的折线图
p2-2-1-2-1 (p276): 15.2.1 修改标签文字和线条粗细
p2-2-1-2-2 (p277): 15.2.2 校正图形
p2-2-1-2-3 (p278): 15.2.3 使用内置样式
p2-2-1-2-4 (p279): 15.2.4 使用scatter()绘制散点图并设置样式
p2-2-1-2-5 (p280): 15.2.5 使用scatter()绘制一系列点
p2-2-1-2-6 (p281): 15.2.6 自动计算数据
p2-2-1-2-7 (p282): 15.2.7 自定义颜色
p2-2-1-2-8 (p283): 15.2.8 使用颜色映射
p2-2-1-2-9 (p284): 15.2.9 自动保存图表
p2-2-1-3 (p284): 15.3 随机漫步
p2-2-1-3-1 (p284): 15.3.1 创建RandomWalk类
p2-2-1-3-2 (p285): 15.3.2 选择方向
p2-2-1-3-3 (p286): 15.3.3 绘制随机漫步图
p2-2-1-3-4 (p287): 15.3.4 模拟多次随机漫步
p2-2-1-3-5 (p288): 15.3.5 设置随机漫步图的样式
p2-2-1-4 (p292): 15.4 使用Plotly模拟掷骰子
p2-2-1-4-1 (p292): 15.4.1 安装Plotly
p2-2-1-4-2 (p293): 15.4.2 创建Die类
p2-2-1-4-3 (p293): 15.4.3 掷骰子
p2-2-1-4-4 (p294): 15.4.4 分析结果
p2-2-1-4-5 (p294): 15.4.5 绘制直方图
p2-2-1-4-6 (p296): 15.4.6 同时掷两个骰子
p2-2-1-4-7 (p298): 15.4.7 同时掷两个面数不同的骰子
p2-2-1-5 (p300): 15.5 小结
p2-2-2 (p301): 第16章 下载数据
p2-2-2-1 (p301): 16.1 CSV文件格式
p2-2-2-1-1 (p302): 16.1.1 分析CSV文件头
p2-2-2-1-2 (p302): 16.1.2 打印文件头及其位置
p2-2-2-1-3 (p303): 16.1.3 提取并读取数据
p2-2-2-1-4 (p304): 16.1.4 绘制温度图表
p2-2-2-1-5 (p305): 16.1.5 模块datetime
p2-2-2-1-6 (p306): 16.1.6 在图表中添加日期
p2-2-2-1-7 (p307): 16.1.7 涵盖更长的时间
p2-2-2-1-8 (p308): 16.1.8 再绘制一个数据系列
p2-2-2-1-9 (p309): 16.1.9 给图表区域着色
p2-2-2-1-10 (p310): 16.1.10 错误检查
p2-2-2-1-11 (p313): 16.1.11 自己动手下载数据
p2-2-2-2 (p314): 16.2 制作全球地震散点图:JSON格式
p2-2-2-2-1 (p315): 16.2.1 地震数据
p2-2-2-2-2 (p315): 16.2.2 查看JSON数据
p2-2-2-2-3 (p317): 16.2.3 创建地震列表
p2-2-2-2-4 (p317): 16.2.4 提取震级
p2-2-2-2-5 (p318): 16.2.5 提取位置数据
p2-2-2-2-6 (p319): 16.2.6 绘制震级散点图
p2-2-2-2-7 (p320): 16.2.7 另一种指定图表数据的方式
p2-2-2-2-8 (p321): 16.2.8 定制标记的尺寸
p2-2-2-2-9 (p322): 16.2.9 定制标记的颜色
p2-2-2-2-10 (p323): 16.2.10 其他渐变
p2-2-2-2-11 (p324): 16.2.11 添加鼠标指向时显示的文本
p2-2-2-3 (p325): 16.3 小结
p2-2-3 (p326): 第17章 使用API
p2-2-3-1 (p326): 17.1 使用Web API
p2-2-3-1-1 (p326): 17.1.1 Git和GitHub
p2-2-3-1-2 (p327): 17.1.2 使用API调用请求数据
p2-2-3-1-3 (p327): 17.1.3 安装Requests
p2-2-3-1-4 (p328): 17.1.4 处理API响应
p2-2-3-1-5 (p329): 17.1.5 处理响应字典
p2-2-3-1-6 (p331): 17.1.6 概述最受欢迎的仓库
p2-2-3-1-7 (p332): 17.1.7 监视API的速率限制
p2-2-3-2 (p332): 17.2 使用Plotly可视化仓库
p2-2-3-2-1 (p334): 17.2.1 改进Plotly图表
p2-2-3-2-2 (p336): 17.2.2 添加自定义工具提示
p2-2-3-2-3 (p337): 17.2.3 在图表中添加可单击的链接
p2-2-3-2-4 (p338): 17.2.4 深入了解Plotly和GitHub API
p2-2-3-3 (p338): 17.3 Hacker News API
p2-2-3-4 (p341): 17.4 小结
p2-3 (p342): 项目3 Web应用程序
p2-3-1 (p343): 第18章 从Django入手
p2-3-1-1 (p343): 18.1 建立项目
p2-3-1-1-1 (p343): 18.1.1 制定规范
p2-3-1-1-2 (p344): 18.1.2 建立虚拟环境
p2-3-1-1-3 (p344): 18.1.3 激活虚拟环境
p2-3-1-1-4 (p345): 18.1.4 安装Django
p2-3-1-1-5 (p345): 18.1.5 在Django中创建项目
p2-3-1-1-6 (p346): 18.1.6 创建数据库
p2-3-1-1-7 (p346): 18.1.7 查看项目
p2-3-1-2 (p348): 18.2 创建应用程序
p2-3-1-2-1 (p348): 18.2.1 定义模型
p2-3-1-2-2 (p349): 18.2.2 激活模型
p2-3-1-2-3 (p351): 18.2.3 Django管理网站
p2-3-1-2-4 (p353): 18.2.4 定义模型Entry
p2-3-1-2-5 (p354): 18.2.5 迁移模型Entry
p2-3-1-2-6 (p354): 18.2.6 向管理网站注册Entry
p2-3-1-2-7 (p355): 18.2.7 Django shell
p2-3-1-3 (p357): 18.3 创建页面:学习笔记主页
p2-3-1-3-1 (p358): 18.3.1 映射URL
p2-3-1-3-2 (p359): 18.3.2 编写视图
p2-3-1-3-3 (p360): 18.3.3 编写模板
p2-3-1-4 (p361): 18.4 创建其他页面
p2-3-1-4-1 (p361): 18.4.1 模板继承
p2-3-1-4-2 (p363): 18.4.2 显示所有主题的页面
p2-3-1-4-3 (p366): 18.4.3 显示特定主题的页面
p2-3-1-5 (p369): 18.5 小结
p2-3-2 (p370): 第19章 用户账户
p2-3-2-1 (p370): 19.1 让用户输入数据
p2-3-2-1-1 (p370): 19.1.1 添加新主题
p2-3-2-1-2 (p374): 19.1.2 添加新条目
p2-3-2-1-3 (p378): 19.1.3 编辑条目
p2-3-2-2 (p381): 19.2 创建用户账户
p2-3-2-2-1 (p381): 19.2.1 应用程序users
p2-3-2-2-2 (p381): 19.2.2 将users添加到settings.py中
p2-3-2-2-3 (p382): 19.2.3 包含users的URL
p2-3-2-2-4 (p382): 19.2.4 登录页面
p2-3-2-2-5 (p384): 19.2.5 注销
p2-3-2-2-6 (p386): 19.2.6 注册页面
p2-3-2-3 (p388): 19.3 让用户拥有自己的数据
p2-3-2-3-1 (p388): 19.3.1 使用@login_required限制访问
p2-3-2-3-2 (p390): 19.3.2 将数据关联到用户
p2-3-2-3-3 (p393): 19.3.3 只允许用户访问自己的主题
p2-3-2-3-4 (p393): 19.3.4 保护用户的主题
p2-3-2-3-5 (p394): 19.3.5 保护页面edit_entry
p2-3-2-3-6 (p394): 19.3.6 将新主题关联到当前用户
p2-3-2-4 (p396): 19.4 小结
p2-3-3 (p397): 第20章 设置应用程序的样式并部署
p2-3-3-1 (p397): 20.1 设置项目“学习笔记”的样式
p2-3-3-1-1 (p398): 20.1.1 应用程序django-bootstrap4
p2-3-3-1-2 (p398): 20.1.2 使用Bootstrap设置项目“学习笔记”的样式
p2-3-3-1-3 (p399): 20.1.3 修改base.html
p2-3-3-1-4 (p403): 20.1.4 使用jumbotron设置主页的样式
p2-3-3-1-5 (p404): 20.1.5 设置登录页面的样式
p2-3-3-1-6 (p405): 20.1.6 设置显示所有主题的页面的样式
p2-3-3-1-7 (p406): 20.1.7 设置显示单个主题的页面中的条目样式
p2-3-3-2 (p407): 20.2 部署“学习笔记”
p2-3-3-2-1 (p408): 20.2.1 建立Heroku账户
p2-3-3-2-2 (p408): 20.2.2 安装Heroku CLI
p2-3-3-2-3 (p408): 20.2.3 安装必要的包
p2-3-3-2-4 (p408): 20.2.4 创建文件requirements.txt
p2-3-3-2-5 (p409): 20.2.5 指定Python版本
p2-3-3-2-6 (p410): 20.2.6 为部署到Heroku而修改settings.py
p2-3-3-2-7 (p410): 20.2.7 创建启动进程的Procfile
p2-3-3-2-8 (p410): 20.2.8 使用Git跟踪项目文件
p2-3-3-2-9 (p412): 20.2.9 推送到Heroku
p2-3-3-2-10 (p414): 20.2.10 在Heroku上建立数据库
p2-3-3-2-11 (p414): 20.2.11 改进Heroku部署
p2-3-3-2-12 (p416): 20.2.12 确保项目的安全
p2-3-3-2-13 (p416): 20.2.13 提交并推送修改
p2-3-3-2-14 (p417): 20.2.14 在Heroku上设置环境变量
p2-3-3-2-15 (p418): 20.2.15 创建自定义错误页面
p2-3-3-2-16 (p420): 20.2.16 继续开发
p2-3-3-2-17 (p421): 20.2.17 设置SECRET_KEY
p2-3-3-2-18 (p421): 20.2.18 将项目从Heroku删除
p2-3-3-3 (p422): 20.3 小结
p3 (p423): 附录A 安装与故障排除
p4 (p428): 附录B 文本编辑器与IDE
p5 (p432): 附录C 寻求帮助
p6 (p436): 附录D 使用Git进行版本控制
p7 (p445): 后记
备用描述
本书分两部分:第一部分介绍用python编程所必须了解的基本概念,包括强大的python库和工具,以及列表,字典,if语句,类,文件与异常,代码测试等内容;第二部分将理论付诸实践,讲解如何开发三个项目,包括简单的2d游戏,利用数据生成交互式的信息图以及创建和定制简单的web应用,并帮助读者解决常见编程问题和困惑.
开源日期
2021-08-06
🚀 快速下载
成为会员以支持书籍、论文等的长期保存。为了感谢您对我们的支持,您将获得高速下载权益。❤️
如果您在本月捐款,您将获得双倍的快速下载次数。
🐢 低速下载
由可信的合作方提供。 更多信息请参见常见问题解答。 (可能需要验证浏览器——无限次下载!)
- 低速服务器(合作方提供) #1 (稍快但需要排队)
- 低速服务器(合作方提供) #2 (稍快但需要排队)
- 低速服务器(合作方提供) #3 (稍快但需要排队)
- 低速服务器(合作方提供) #4 (稍快但需要排队)
- 低速服务器(合作方提供) #5 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #6 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #7 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #8 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #9 (无需排队,但可能非常慢)
- 下载后: 在我们的查看器中打开
所有选项下载的文件都相同,应该可以安全使用。即使这样,从互联网下载文件时始终要小心。例如,确保您的设备更新及时。
外部下载
-
对于大文件,我们建议使用下载管理器以防止中断。
推荐的下载管理器:JDownloader -
您将需要一个电子书或 PDF 阅读器来打开文件,具体取决于文件格式。
推荐的电子书阅读器:Anna的档案在线查看器、ReadEra和Calibre -
使用在线工具进行格式转换。
推荐的转换工具:CloudConvert和PrintFriendly -
您可以将 PDF 和 EPUB 文件发送到您的 Kindle 或 Kobo 电子阅读器。
推荐的工具:亚马逊的“发送到 Kindle”和djazz 的“发送到 Kobo/Kindle” -
支持作者和图书馆
✍️ 如果您喜欢这个并且能够负担得起,请考虑购买原版,或直接支持作者。
📚 如果您当地的图书馆有这本书,请考虑在那里免费借阅。
下面的文字仅以英文继续。
总下载量:
“文件的MD5”是根据文件内容计算出的哈希值,并且基于该内容具有相当的唯一性。我们这里索引的所有影子图书馆都主要使用MD5来标识文件。
一个文件可能会出现在多个影子图书馆中。有关我们编译的各种数据集的信息,请参见数据集页面。
有关此文件的详细信息,请查看其JSON 文件。 Live/debug JSON version. Live/debug page.