Python编程:从入门到实践(高清完整版)
本书是一本针对所有层次的Python读者而作的Python入门书。全书分两部分:首部分介绍用Python 编程所必须了解的基本概念,包括matplotlib、NumPy和Pygal等强大的Python库和工具介绍,以及列表、字典、if语句、类、文件与异常、代码测试等内容;第二部分将理论付诸实践,讲解如何开发三个项目,包括简单的Python 2D游戏开发,如何利用数据生成交互式的信息图,以及创建和定制简单的Web应用,并帮读者解决常见编程问题和困惑。
目录
第一部分 基础知识
第1章 起步 2
1.1 搭建编程环境 2
1.1.1 Python 2和Python 3 2
1.1.2 运行Python代码片段 3
1.1.3 Hello World程序 3
1.2 在不同操作系统中搭建Python编程环境 3
1.2.1 在Linux系统中搭建Python编程环境 3
1.2.2 在OS X系统中搭建Python编程环境 6
1.2.3 在Windows系统中搭建Python编程环境 8
1.3 解决安装问题 12
1.4 从终端运行Python程序 13
1.4.1 在Linux和OS X系统中从终端运行Python程序 13
1.4.2 在Windows系统中从终端运行Python程序 13
1.5 小结 14
第2章 变量和简单数据类型 15
2.1 运行hello_world.py时发生的情况 15
2.2 变量 16
2.2.1 变量的命名和使用 16
2.2.2 使用变量时避免命名错误 17
2.3 字符串 18
2.3.1 使用方法修改字符串的大小写 19
2.3.2 合并(拼接)字符串 19
2.3.3 使用制表符或换行符来添加空白 20
2.3.4 删除空白 21
2.3.5 使用字符串时避免语法错误 22
2.3.6 Python 2中的print语句 23
2.4 数字 24
2.4.1 整数 24
2.4.2 浮点数 25
2.4.3 使用函数str()避免类型错误 25
2.4.4 Python 2中的整数 26
2.5 注释 27
2.5.1 如何编写注释 27
2.5.2 该编写什么样的注释 28
2.6 Python之禅 28
2.7 小结 30
第3章 列表简介 31
3.1 列表是什么 31
3.1.1 访问列表元素 32
3.1.2 索引从0而不是1开始 32
3.1.3 使用列表中的各个值 33
3.2 修改、添加和删除元素 33
3.2.1 修改列表元素 34
3.2.2 在列表中添加元素 34
3.2.3 从列表中删除元素 35
3.3 组织列表 39
3.3.1 使用方法sort()对列表进行永久性排序 39
3.3.2 使用函数sorted()对列表进行临时排序 40
3.3.3 倒着打印列表 41
3.3.4 确定列表的长度 41
3.4 使用列表时避免索引错误 42
3.5 小结 43
第4章 操作列表 44
4.1 遍历整个列表 44
4.1.1 深入地研究循环 45
4.1.2 在for循环中执行更多的操作 46
4.1.3 在for循环结束后执行一些操作 47
4.2 避免缩进错误 47
4.2.1 忘记缩进 48
4.2.2 忘记缩进额外的代码行 48
4.2.3 不必要的缩进 49
4.2.4 循环后不必要的缩进 49
4.2.5 遗漏了冒号 50
4.3 创建数值列表 51
4.3.1 使用函数range() 51
4.3.2 使用range()创建数字列表 51
4.3.3 对数字列表执行简单的统计计算 53
4.3.4 列表解析 53
4.4 使用列表的一部分 54
4.4.1 切片 54
4.4.2 遍历切片 56
4.4.3 复制列表 56
4.5 元组 59
4.5.1 定义元组 59
4.5.2 遍历元组中的所有值 59
4.5.3 修改元组变量 60
4.6 设置代码格式 61
4.6.1 格式设置指南 61
4.6.2 缩进 61
4.6.3 行长 61
4.6.4 空行 62
4.6.5 其他格式设置指南 62
4.7 小结 63
第5章 if语句 64
5.1 一个简单示例 64
5.2 条件测试 65
5.2.1 检查是否相等 65
5.2.2 检查是否相等时不考虑大小写 65
5.2.3 检查是否不相等 66
5.2.4 比较数字 67
5.2.5 检查多个条件 67
5.2.6 检查特定值是否包含在列表中 69
5.2.8 布尔表达式 69
5.3 if语句 70
5.3.1 简单的if语句 70
5.3.2 if-else语句 71
5.3.3 if-elif-else结构 72
5.3.4 使用多个elif代码块 73
5.3.5 省略else代码块 74
5.3.6 测试多个条件 74
5.4 使用if语句处理列表 76
5.4.1 检查特殊元素 77
5.4.2 确定列表不是空的 78
5.4.3 使用多个列表 78
5.5 设置if语句的格式 80
5.6 小结 80
第6章 字典 81
6.1 一个简单的字典 81
6.2 使用字典 82
6.2.1 访问字典中的值 82
6.2.2 添加键—值对 83
6.2.3 先创建一个空字典 83
6.2.4 修改字典中的值 84
6.2.5 删除键—值对 85
6.2.6 由类似对象组成的字典 86
6.3 遍历字典 87
6.3.1 遍历所有的键—值对 87
6.3.2 遍历字典中的所有键 89
6.3.3 按顺序遍历字典中的所有键 91
6.3.4 遍历字典中的所有值 91
6.4 嵌套 93
6.4.1 字典列表 93
6.4.2 在字典中存储列表 95
6.4.3 在字典中存储字典 97
6.5 小结 99
第7章 用户输入和while循环 100
7.1 函数input()的工作原理 100
7.1.1 编写清晰的程序 101
7.1.2 使用int()来获取数值输入 102
7.1.3 求模运算符 103
7.1.4 在Python 2.7中获取输入 104
7.2 while循环简介 104
7.2.1 使用while循环 104
7.2.2 让用户选择何时退出 105
7.2.3 使用标志 106
7.2.4 使用break退出循环 107
7.2.5 在循环中使用continue 108
7.2.6 避免无限循环 109
7.3 使用while循环来处理列表和字典 110
7.3.1 在列表之间移动元素 110
7.3.2 删除包含特定值的所有列表元素 111
7.3.3 使用用户输入来填充字典 112
7.4 小结 113
第8章 函数 114
8.1 定义函数 114
8.1.1 向函数传递信息 115
8.1.2 实参和形参 115
8.2 传递实参 116
8.2.1 位置实参 116
8.2.2 关键字实参 118
8.2.3 默认值 118
8.2.4 等效的函数调用 119
8.2.5 避免实参错误 120
8.3 返回值 121
8.3.1 返回简单值 121
8.3.2 让实参变成可选的 122
8.3.3 返回字典 123
8.3.4 结合使用函数和while循环....... 124
8.4 传递列表 126
8.4.1 在函数中修改列表 126
8.4.2 禁止函数修改列表 129
8.5 传递任意数量的实参 130
8.5.1 结合使用位置实参和任意数量实参 131
8.5.2 使用任意数量的关键字实参 131
8.6 将函数存储在模块中 133
8.6.1 导入整个模块 133
8.6.2 导入特定的函数 134
8.6.3 使用as给函数指定别名 134
8.6.4 使用as给模块指定别名 135
8.6.5 导入模块中的所有函数 135
8.7 函数编写指南 136
8.8 小结 137
第9章 类 138
9.1 创建和使用类 138
9.1.1 创建Dog类 139
9.1.2 根据类创建实例 140
9.2 使用类和实例 142
9.2.1 Car类 143
9.2.2 给属性指定默认值 143
9.2.3 修改属性的值 144
9.3 继承 147
9.3.1 子类的方法__init__() 147
9.3.2 Python 2.7中的继承 149
9.3.3 给子类定义属性和方法 149
9.3.4 重写父类的方法 150
9.3.5 将实例用作属性 150
9.3.6 模拟实物 152
9.4 导入类 153
9.4.1 导入单个类 153
9.4.2 在一个模块中存储多个类 155
9.4.3 从一个模块中导入多个类 156
9.4.4 导入整个模块 157
9.4.5 导入模块中的所有类 157
9.4.6 在一个模块中导入另一个模块 157
9.4.7 自定义工作流程 158
9.5 Python标准库 159
9.6 类编码风格 161
9.7 小结 161
第10章 文件和异常 162
10.1 从文件中读取数据 162
10.1.1 读取整个文件 162
10.1.2 文件路径 164
10.1.3 逐行读取 165
10.1.4 创建一个包含文件各行内容的列表 166
10.1.5 使用文件的内容 166
10.1.6 包含一百万位的大型文件 168
10.1.7 圆周率值中包含你的生日吗 168
10.2 写入文件 169
10.2.1 写入空文件 170
10.2.2 写入多行 170
10.2.3 附加到文件 171
10.3 异常 172
10.3.1 处理ZeroDivisionError异常 172
10.3.2 使用try-except代码块 173
10.3.3 使用异常避免崩溃 173
10.3.4 else代码块 174
10.3.5 处理FileNotFoundError异常 175
10.3.6 分析文本 176
10.3.7 使用多个文件 177
10.3.8 失败时一声不吭 178
10.3.9 决定报告哪些错误 179
10.4 存储数据 180
10.4.1 使用json.dump()和json.load() 180
10.4.2 保存和读取用户生成的数据 181
10.4.3 重构 183
10.5 小结 186
第11章 测试代码 187
11.1 测试函数 187
11.1.1 单元测试和测试用例 188
11.1.2 可通过的测试 188
11.1.3 不能通过的测试 190
11.1.4 测试未通过时怎么办 191
11.1.5 添加新测试 191
11.2 测试类 193
11.2.1 各种断言方法 193
11.2.2 一个要测试的类 194
11.2.3 测试AnonymousSurvey类 195
11.2.4 方法setUp() 197
11.3 小结 199
第二部分 项目
项目1 外星人入侵 202
第12章 武装飞船 203
12.1 规划项目 203
12.2 安装Pygame 204
12.2.1 使用pip安装Python包 204
12.2.2 在Linux系统中安装Pygame 206
12.2.3 在OS X系统中安装Pygame 207
12.2.4 在Windows系统中安装Pygame 207
12.3 开始游戏项目 207
12.3.1 创建Pygame窗口以及响应用户输入 208
12.3.2 设置背景色 209
12.3.3 创建设置类 210
12.4 添加飞船图像 211
12.4.1 创建Ship类 212
12.4.2 在屏幕上绘制飞船 213
12.5 重构:模块game_functions 214
12.5.1 函数check_events() 214
12.5.2 函数update_screen() 215
12.6 驾驶飞船 216
12.6.1 响应按键 216
12.6.2 允许不断移动 217
12.6.3 左右移动 219
12.6.4 调整飞船的速度 220
12.6.5 限制飞船的活动范围 221
12.6.6 重构check_events() 222
12.7 简单回顾 223
12.7.1 alien_invasion.py 223
12.7.2 settings.py 223
12.7.3 game_functions.py 223
12.7.4 ship.py 223
12.8 射击 224
12.8.1 添加子弹设置 224
12.8.2 创建Bullet类 224
12.8.3 将子弹存储到编组中 226
12.8.4 开火 227
12.8.5 删除已消失的子弹 228
12.8.6 限制子弹数量 229
12.8.7 创建函数update_bullets() 230
12.9 小结 231
第13章 外星人 232
13.1 回顾项目 232
13.2 创建第一个外星人 233
13.2.1 创建Alien类 233
13.2.2 创建Alien实例 234
13.2.3 让外星人出现在屏幕上 235
13.3 创建一群外星人 236
13.3.1 确定一行可容纳多少个外星人 236
13.3.2 创建多行外星人 236
13.3.3 创建外星人群 237
13.3.4 重构create_fleet() 239
13.3.5 添加行 240
13.4 让外星人群移动 242
13.4.1 向右移动外星人 243
13.4.2 创建表示外星人移动方向的设置 244
13.4.3 检查外星人是否撞到了屏幕边缘 244
13.4.4 向下移动外星人群并改变移动方向 245
13.5 射杀外星人 246
13.5.1 检测子弹与外星人的碰撞 246
13.5.2 为测试创建大子弹 247
13.5.3 生成新的外星人群 248
13.5.4 提高子弹的速度 249
13.5.5 重构update_bullets() 249
13.6 结束游戏 250
13.6.1 检测外星人和飞船碰撞 250
13.6.2 响应外星人和飞船碰撞 251
13.6.3 有外星人到达屏幕底端 254
13.6.4 游戏结束 255
13.7 确定应运行游戏的哪些部分 255
13.8 小结 256
第14章 记分 257
14.1 添加Play按钮 257
14.1.1 创建Button类 258
14.1.2 在屏幕上绘制按钮 259
14.1.3 开始游戏 261
14.1.4 重置游戏 261
14.1.5 将Play按钮切换到非活动状态 263
14.1.6 隐藏光标 263
14.2 提高等级 264
14.2.1 修改速度设置 264
14.2.2 重置速度 266
14.3 记分 267
14.3.1 显示得分 267
14.3.2 创建记分牌 268
14.3.3 在外星人被消灭时更新得分 270
14.3.4 将消灭的每个外星人的点数都计入得分 271
14.3.5 提高点数 271
14.3.6 将得分圆整 272
14.3.7 最高得分 274
14.3.8 显示等级 276
14.3.9 显示余下的飞船数 279
14.4 小结 283
项目2 数据可视化 284
第15章 生成数据 285
15.1 安装matplotlib 285
15.1.1 在Linux系统中安装matplotlib 286
15.1.2 在OS X系统中安装matplotlib 286
15.1.3 在Windows系统中安装matplotlib 286
15.1.4 测试matplotlib 287
15.1.5 matplotlib画廊 287
15.2 绘制简单的折线图 287
15.2.1 修改标签文字和线条粗细 288
15.2.2 校正图形 289
15.2.3 使用scatter()绘制散点图并设置其样式 290
15.2.4 使用scatter()绘制一系列点 291
15.2.5 自动计算数据 292
15.2.6 删除数据点的轮廓 293
15.2.7 自定义颜色 293
15.2.8 使用颜色映射 294
15.2.9 自动保存图表 295
15.3 随机漫步 295
15.3.1 创建RandomWalk()类 296
15.3.2 选择方向 296
15.3.3 绘制随机漫步图 297
15.3.4 模拟多次随机漫步 298
15.3.5 设置随机漫步图的样式 299
15.3.6 给点着色 299
15.3.7 重新绘制起点和终点 300
15.3.8 隐藏坐标轴 301
15.3.9 增加点数 301
15.3.10 调整尺寸以适合屏幕 302
15.4 使用Pygal模拟掷骰子 303
15.4.1 安装Pygal 304
15.4.2 Pygal画廊 304
15.4.3 创建Die类 304
15.4.4 掷骰子 305
15.4.5 分析结果 305
15.4.6 绘制直方图 306
15.4.7 同时掷两个骰子 307
15.4.8 同时掷两个面数不同的骰子 309
15.5 小结 311
第16章 下载数据 312
16.1 CSV文件格式 312
16.1.1 分析CSV文件头 313
16.1.2 打印文件头及其位置 314
16.1.3 提取并读取数据 314
16.1.4 绘制气温图表 315
16.1.5 模块datetime 316
16.1.6 在图表中添加日期 317
16.1.7 涵盖更长的时间 318
16.1.8 再绘制一个数据系列 319
16.1.9 给图表区域着色 320
16.1.10 错误检查 321
16.2 制作世界人口地图:JSON格式 324
16.2.1 下载世界人口数据 324
16.2.2 提取相关的数据 324
16.2.3 将字符串转换为数字值 326
16.2.4 获取两个字母的国别码 327
16.2.5 制作世界地图 329
16.2.6 在世界地图上呈现数字数据 330
16.2.7 绘制完整的世界人口地图 331
16.2.8 根据人口数量将国家分组 333
16.2.9 使用Pygal设置世界地图的样式 334
16.2.10 加亮颜色主题 335
16.3 小结 337
第17章 使用API 338
17.1 使用Web API 338
17.1.1 Git和GitHub 338
17.1.2 使用API调用请求数据 339
17.1.3 安装requests 339
17.1.4 处理API响应 340
17.1.5 处理响应字典 340
17.1.6 概述最受欢迎的仓库 342
17.1.7 监视API的速率限制 343
17.2 使用Pygal可视化仓库 344
17.2.1 改进Pygal图表 346
17.2.2 添加自定义工具提示 347
17.2.3 根据数据绘图 349
17.2.4 在图表中添加可单击的链接 350
17.3 Hacker News API 350
17.4 小结 353
项目3 Web应用程序 354
第18章 Django入门 355
18.1 建立项目 355
18.1.1 制定规范 355
18.1.2 建立虚拟环境 356
18.1.3 安装virtualenv 356
18.1.4 激活虚拟环境 357
18.1.5 安装Django 357
18.1.6 在Django中创建项目 357
18.1.7 创建数据库 358
18.1.8 查看项目 359
18.2 创建应用程序 360
18.2.1 定义模型 360
18.2.2 激活模型 362
18.2.3 Django 管理网站 363
18.2.4 定义模型Entry 365
18.2.5 迁移模型Entry 366
18.2.6 向管理网站注册Entry 366
18.2.7 Django shell 367
18.3 创建网页:学习笔记主页 369
18.3.1 映射URL 369
18.3.2 编写视图 371
18.3.3 编写模板 372
18.4 创建其他网页 373
18.4.1 模板继承 373
18.4.2 显示所有主题的页面 375
18.4.3 显示特定主题的页面 378
18.5 小结 381
第19章 用户账户 382
19.1 让用户能够输入数据 382
19.1.1 添加新主题 382
19.1.2 添加新条目 386
19.1.3 编辑条目 390
19.2 创建用户账户 392
19.2.1 应用程序users 393
19.2.2 登录页面 394
19.2.3 注销 396
19.2.4 注册页面 397
19.3 让用户拥有自己的数据 400
19.3.1 使用@login_required限制访问 400
19.3.2 将数据关联到用户 402
19.3.3 只允许用户访问自己的主题 405
19.3.4 保护用户的主题 405
19.3.5 保护页面edit_entry 406
19.3.6 将新主题关联到当前用户 406
19.4 小结 408
第20章 设置应用程序的样式并对其进行部署 409
20.1 设置项目“学习笔记”的样式 409
20.1.1 应用程序django-bootstrap3 410
20.1.2 使用Bootstrap来设置项目“学习笔记”的样式 411
20.1.3 修改base.html 411
20.1.4 使用jumbotron设置主页的样式 414
20.1.5 设置登录页面的样式 415
20.1.6 设置new_topic页面的样式 416
20.1.7 设置topics页面的样式 417
20.1.8 设置topic页面中条目的样式 417
20.2 部署“学习笔记” 419
20.2.1 建立Heroku账户 420
20.2.2 安装Heroku Toolbelt 420
20.2.3 安装必要的包 420
20.2.4 创建包含包列表的文件requirements.txt 421
20.2.5 指定Python版本 422
20.2.6 为部署到Herohu而修改settings.py 422
20.2.7 创建启动进程的Procfile 423
20.2.8 为部署到Herohu而修改wsgi.py 423
20.2.9 创建用于存储静态文件的目录 424
20.2.10 在本地使用gunicorn服务器 424
20.2.11 使用Git跟踪项目文件 425
20.2.12 推送到Heroku 426
20.2.13 在Heroku上建立数据库 427
20.2.14 改进Heroku部署 428
20.2.15 确保项目的安全 429
20.2.16 提交并推送修改 430
20.2.17 创建自定义错误页面 431
20.2.18 继续开发 434
20.2.19 设置SECRET_KEY 434
20.2.20 将项目从Heroku删除 434
20.3 小结 435
附录A 安装Python 436
附录B 文本编辑器 441
附录C 寻求帮助 447
附录D 使用Git进行版本控制 451
后记 460
Go并发编程实战_完整版
文件内容为下载地址和密码
《Go并发编程实战》全面介绍了Go语言的特点、安装部署环境、工程规范、工具链、语言语法、并发编程模型以及在多个编程实战中的应用,重点阐述了Go语言并发编程模型和机制。本书共分为四个部分,介绍了Go语言编程环境搭建、Go语言基础编程、Go语言并发编程方法及其原理,以及使用Go语言开发的应用系统的案例讲解。
《Go并发编程实战》适用于有一定计算机编程基础的从业者以及对Go语言编程感兴趣的爱好者,非常适合作为Go语言编程进阶教程。
目录:
第一部分 Go语言的世界
第1章 初识Go语言
1.1Go语言特性一瞥
1.2Go语言的优劣
1.3怎样学习Go语言
1.4本章小结
第2章 Go语言环境搭建
2.1安装和设置
2.1.1Linux
2.1.2Windows
2.2工程结构
2.2.1工作区
2.2.2GOPATH
2.2.3源码文件
2.2.4代码包
2.3标准命令概述
2.4本章小结
第二部分 编程基础
第3章 词法与数据类型
3.1基本词法
3.1.1标识符
3.1.2关键字
3.1.3字面量
3.1.4类型
3.1.5操作符
3.1.6表达式
3.2数据类型
3.2.1基本数据类型
3.2.2数组
3.2.3切片
3.2.4字典
3.2.5函数和方法
3.2.6接口
3.2.7结构体
3.2.8指针
3.2.9数据初始化
3.3数据的使用
3.3.1赋值语句
3.3.2常量与变量
3.3.3可比性与有序性
3.3.4类型转换
3.3.5内建函数
3.4本章小结
第4章 流程控制方法
4.1基本流程控制
4.1.1代码块和作用域
4.1.2if语句
4.1.3switch语句
4.1.4for语句
4.1.5goto语句
4.2defer语句
4.3异常处理
4.3.1error
4.3.2panic和recover
4.4实战演练--Set
4.5实战演练--OrderedMap
4.6本章小结
第5章 程序测试和文档
5.1程序测试
5.1.1功能测试
5.1.2基准测试
5.1.3样本测试
5.1.4测试运行记录
5.1.5测试覆盖率
5.2程序文档
5.3本章小结
第三部分 并发编程
第6章 并发编程综述
6.1并发编程基础
6.1.1串行程序与并发程序
6.1.2并发程序与并行程序
6.1.3并发程序与并发系统
6.1.4并发程序的不确定性
6.1.5并发程序内部的交互
6.2多进程编程
6.2.1进程
6.2.2关于同步
6.2.3管道
6.2.4信号
6.2.5Socket
6.3多线程编程
6.3.1线程
6.3.2线程的同步
6.4多线程与多进程
6.5多核时代的并发编程
6.6Go语言的并发编程
6.6.1线程实现模型
6.6.2调度器
6.6.3更多的细节
6.7本章小结
第7章 Goroutine和Channel
7.1Goroutine的使用
7.1.1go语句与Goroutine
7.1.2Goroutine的运作过程
7.1.3runtime包与Goroutine
7.1.4HappensBefore
7.2Channel
7.2.1Channel是什么
7.2.2单向Channel
7.2.3for语句与Channel
7.2.4select语句
7.2.5非缓冲的Channel
7.2.6time包与Channel
7.3实战演练--载荷发生器
7.3.1参数和结果
7.3.2基本结构
7.3.3初始化
7.3.4启动和停止
7.3.5调用器和功能测试
7.4本章小结
第8章 同步
8.1锁的使用
8.2条件变量
8.3原子操作
8.4只会执行一次
8.5WaitGroup
8.6临时对象池
8.7实战演练--ConcurrentMap
8.8本章小结
第四部分 编程实战
第9章 一个网络爬虫框架的设计和实现
9.1网络爬虫与框架
9.2功能需求和分析
9.3总体设计
9.4详细设计
9.4.1基本数据结构
9.4.2接口的设计
9.5中间件的实现
9.5.1通道管理器
9.5.2实体池
9.5.3停止信号
9.5.4ID生成器
9.6处理模块的实现
9.6.1网页下载器
9.6.2分析器
9.6.3条目处理管道
9.7调度器的实现
9.7.1基本结构
9.7.2主要的函数和方法
9.7.3请求缓存
9.7.4摘要信息的类型
9.8一个使用演示
9.8.1再看调度器参数
9.8.2开启调度器
9.8.3调度器监控函数
9.9当前的不足和解决思路
9.10本章小结
附录Go语言的学习资源
Python.Cookbook(第2版)中文版
中文名: Python Cookbook(第2版)中文版
原名: Python Cookbook, 2nd Edition
作者: (美)马特利
(美)阿舍尔译者: 高铁军
资源格式: PDF
版本: 扫描版
出版社: 人民邮电出版社书号: 9787115222664发行时间: 2010年05月01日
地区: 大陆
语言: 简体中文
简介:
内容简介
《Python Cookbook(第2版)中文版》介绍了Python应用在各个领域中的一些使用技巧和方法,从最基本的字符、文件序列、字典和排序,到进阶的面向对象编程、数据库和数据持久化、XML处理和Web编程,再到比较高级和抽象的描述符、装饰器、元类、迭代器和生成器,均有涉及。书中还介绍了一些第三方包和库的使用,包括Twisted、GIL、PyWin32等。《Python Cookbook(第2版)中文版》覆盖了Python应用中的很多常见问题,并提出了通用的解决方案。书中的代码和方法具有很强的实用性,可以方便地应用到实际的项目中,并产生立竿见影的效果。尤为难得的是,《Python Cookbook(第2版)中文版》的各位作者都具有丰富的业界实践经验,因此,《Python Cookbook(第2版)中文版》不仅给出了对各种问题的解决方案,同时还体现了很多专家的思维方式和良好的编程习惯,与具体的细节性知识相比,这部分内容无疑是《Python Cookbook(第2版)中文版》的精华。
目录:
第1章 文本
引言 1
1.1 每次处理一个字符
1.2 字符和字符值之间的转换
1.3 测试一个对象是否是类字符串
1.4 字符串对齐
1.5 去除字符串两端的空格
1.6 合并字符串
1.7 将字符串逐字符或逐词反转
1.8 检查字符串中是否包含某字符集合中的字符
1.9 简化字符串的translate方法的使用
1.10 过滤字符串中不属于指定集合的字符
1.11 检查一个字符串是文本还是二进制
1.12 控制大小写
1.13 访问子字符串
1.14 改变多行文本字符串的缩进
1.15 扩展和压缩制表符
1.16 替换字符串中的子串
1.17 替换字符串中的子串-Python 2.
1.18 一次完成多个替换
1.19 检查字符串中的结束标记
1.20 使用Unicode来处理国际化文本
1.21 在Unicode和普通字符串之间转换
1.22 在标准输出中打印Unicode字符
1.23 对Unicode数据编码并用于XML和HTML
1.24 让某些字符串大小写不敏感
1.25 将HTML文档转化为文本显示到UNIX终端上
第2章 文件
引言
2.1 读取文件
2.2 写入文件
2.3 搜索和替换文件中的文本
2.4 从文件中读取指定的行
2.5 计算文件的行数
2.6 处理文件中的每个词
2.7 随机输入/输出
2.8 更新随机存取文件
2.9 从zip文件中读取数据
2.10 处理字符串中的zip文件
2.11 将文件树归档到一个压缩的tar文件
2.12 将二进制数据发送到Windows的标准输出
2.13 使用C++的类iostream语法
2.14 回退输入文件到起点
2.15 用类文件对象适配真实文件对象
2.16 遍历目录树
2.17 在目录树中改变文件扩展名
2.18 从指定的搜索路径寻找文件
2.19 根据指定的搜索路径和模式寻找文件
2.20 在Python的搜索路径中寻找文件
2.21 动态地改变Python搜索路径
2.22 计算目录间的相对路径
2.23 跨平台地读取无缓存的字符
2.24 在Mac OS X平台上统计PDF文档的页数
2.25 在Windows平台上修改文件属性
2.26 从OpenOffice.org文档中提取文本
2.27 从微软Word文档中抽取文本
2.28 使用跨平台的文件锁
2.29 带版本号的文件名
2.30 计算CRC-64循环冗余码校验
第3章 时间和财务计算
引言
3.1 计算昨天和明天的日期
3.2 寻找上一个星期五
3.3 计算日期之间的时段
3.4 计算歌曲的总播放时间
3.5 计算日期之间的工作日
3.6 自动查询节日
3.7 日期的模糊查询
3.8 检查夏令时是否正在实行
3.9 时区转换
3.10 反复执行某个命令
3.11 定时执行命令
3.12 十进制数学计算
3.13 将十进制数用于货币处理
3.14 用Python实现的简单加法器
3.15 检查信用卡校验和
3.16 查看汇率
第4章 Python技巧
引言
4.1 对象拷贝
4.2 通过列表推导构建列表
4.3 若列表中某元素存在则返回之
4.4 循环访问序列中的元素和索引
4.5 在无须共享引用的条件下创建列表的列表
4.6 展开一个嵌套的序列
4.7 在行列表中完成对列的删除和排序
4.8 二维阵列变换
4.9 从字典中取值
4.10 给字典增加一个条目
4.11 在无须过多援引的情况下创建字典
4.12 将列表元素交替地作为键和值来创建字典
4.13 获取字典的一个子集
4.14 反转字典
4.15 字典的一键多值
4.16 用字典分派方法和函数
4.17 字典的并集与交集
4.18 搜集命名的子项
4.19 用一条语句完成赋值和测试
4.20 在Python中使用printf
4.21 以指定的概率获取元素
4.22 在表达式中处理异常
4.23 确保名字已经在给定模块中被定义
第5章 搜索和排序
引言
5.1 对字典排序
5.2 不区分大小写对字符串列表排序
5.3 根据对象的属性将对象列表排序
5.4 根据对应值将键或索引排序
5.5 根据内嵌的数字将字符串排序
5.6 以随机顺序处理列表的元素
5.7 在增加元素时保持序列的顺序
5.8 获取序列中最小的几个元素
5.9 在排序完毕的序列中寻找元素
5.10 选取序列中最小的第n个元素
5.11 三行代码的快速排序
5.12 检查序列的成员
5.13 寻找子序列
5.14 给字典类型增加排名功能
5.15 根据姓的首字母将人名排序和分组
第6章 面向对象编程
引言
6.1 温标的转换
6.2 定义常量
6.3 限制属性的设置
6.4 链式字典查询
6.5 继承的替代方案-自动托管
6.6 在代理中托管特殊方法
6.7 有命名子项的元组
6.8 避免属性读写的冗余代码
6.9 快速复制对象
6.10 保留对被绑定方法的引用且支持垃圾回收
6.11 缓存环的实现
6.12 检查一个实例的状态变化
6.13 检查一个对象是否包含某种必要的属性
6.14 实现状态设计模式
6.15 实现单例模式
6.16 用Borg惯用法来避免“单例”模式
6.17 Null对象设计模式的实现
6.18 用_ _init_ _参数自动初始化实例变量
6.19 调用超类的_ _init_ _方法
6.20 精确和安全地使用协作的超类调用
第7章 持久化和数据库
引言
7.1 使用marshal模块序列化数据
7.2 使用pickle和cPickle模块序列化数据
7.3 在Pickling的时候压缩
7.4 对类和实例使用cPickle模块
7.5 Pickling被绑定方法
7.6 Pickling代码对象
7.7 通过shelve修改对象
7.8 使用Berkeley DB数据库
7.9 访问MySQL数据库
7.10 在MySQL数据库中储存BLOB
7.11 在PostgreSQL中储存BLOB
7.12 在SQLite中储存BLOB
7.13 生成一个字典将字段名映射为列号
7.14 利用dtuple实现对查询结果的灵活访问
7.15 打印数据库游标的内容
7.16 适用于各种DB API模块的单参数传递风格
7.17 通过ADO使用Microsoft Jet
7.18 从Jython Servlet访问JDBC数据库
7.19 通过Jython和ODBC获得Excel数据
第8章 调试和测试
引言
8.1 阻止某些条件和循环的执行
8.2 在Linux上测量内存使用
8.3 调试垃圾回收进程
8.4 捕获和记录异常
8.5 在调试模式中跟踪表达式和注释
8.6 从traceback中获得更多信息
8.7 当未捕获异常发生时自动启用调试器
8.8 简单的使用单元测试
8.9 自动运行单元测试
8.10 在Python 2.4中使用doctest和unittest
8.11 在单元测试中检查区间
第9章 进程、线程和同步
引言
9.1 同步对象中的所有方法
9.2 终止线程
9.3 将Queue.Queue用作优先级队列
9.4 使用线程池
9.5 以多组参数并行执行函数
9.6 用简单的消息传递协调线程
9.7 储存线程信息
9.8 无线程的多任务协作
9.9 在Windows中探测另一个脚本实例的运行
9.10 使用MsgWaitForMultipleObjects处理Windows消息
9.11 用popen驱动外部进程
9.12 获取UNIX Shell命令的输出流和错误流
9.13 在UNIX中fork一个守护进程
第10章 系统管理
引言
10.1 生成随机密码
10.2 生成易记的伪随机密码
10.3 以POP服务器的方式验证用户
10.4 统计Apache中每个IP的点击率
10.5 统计Apache的客户缓存的命中率
10.6 在脚本中调用编辑器
10.7 备份文件
10.8 选择性地复制邮箱文件
10.9 通过邮箱创建一个邮件地址的白名单
10.10 阻塞重复邮件
10.11 检查你的Windows声音系统
10.12 在Windows中注册和反注册DLL
10.13 检查并修改Windows自动运行任务
10.14 在Windows中创建共享
10.15 连接一个正在运行的Internet Explorer实例
10.16 读取Microsoft Outlook Contacts
10.17 在Mac OS X中收集详细的系统信息
第11章 用户界面
引言
11.1 在文本控制台中显示进度条
11.2 避免在编写回调函数时使用lambda
11.3 在tkSimpleDialog函数中使用默认值和区间
11.4 给Tkinter列表框增加拖曳排序能力
11.5 在Tkinter部件中输入一个重音字符
11.6 在Tkinter中嵌入内联的GIF
11.7 转换图片格式
11.8 在Tkinter中实现一个秒表
11.9 用线程实现GUI和异步I/O 的结合
11.10 在Tkinter中使用IDLE的 Tree部件
11.11 在Tkinter Listbox中支持单行多值
11.12 在Tkinter部件之间复制Geometry方法和选项
11.13 在Tkinter中实现一个带标签的记事本
11.14 使用wxPython实现带面板的记事本
11.15 在Jython中实现一个ImageJ插件
11.16 用Swing和Jython来通过URL查看图片
11.17 在Mac OS中获得用户输入
11.18 程序化地创建Python Cocoa GUI
11.19 用IronPython实现淡入窗口
第12章 XML处理
引言
12.1 检查XML的格式完好性
12.2 计算文档中标签的个数
12.3 获得XML文档中的文本
12.4 自动探测XML的编码
12.5 将一个XML文档转化成Python对象树
12.6 从XML DOM节点的子树中删除仅有空白符的文本节点
12.7 解析Microsoft Excel的XML
12.8 验证XML文档
12.9 过滤属于指定命名空间的元素和属性
12.10 用SAX合并连续的文本事件
12.11 使用MSHTML来解析XML或HTML
第13章 网络编程
引言
13.1 通过Socket数据报传输消息
13.2 从Web抓取文档
13.3 过滤FTP站点列表
13.4 通过SNTP协议从服务器获取时间
13.5 发送HTML邮件
13.6 在MIME消息中绑入文件
13.7 拆解一个分段MIME消息
13.8 删除邮件消息中的附件
13.9 修复Python 2.4的email.FeedParser 解析的消息
13.10 交互式地检查POP3邮箱
13.11 探测不活动的计算机
13.12 用HTTP监视网络
13.13 网络端口的转发和重定向
13.14 通过代理建立SSL隧道
13.15 实现动态IP协议
13.16 登录到IRC并将消息记录到磁盘
13.17 访问LDAP服务
第14章 Web编程
引言
14.1 测试CGI是否在工作
14.2 用CGI脚本处理URL
14.3 用CGI上传文件
14.4 检查web页面的存在
14.5 通过HTTP检查内容类型
14.6 续传HTTP下载文件
14.7 抓取Web页面时处理Cookie
14.8 通过带身份验证的代理进行HTTPS导航
14.9 用Jython实现Servlet
14.10 寻找Internet Explorer的cookie
14.11 生成OPML文件
14.12 聚合RSS Feed
14.13 通过模板将数据放入Web页面
14.14 在Nevow中呈现任意对象
第15章 分布式编程
引言
15.1 实现一个XML-RPC方法调用
15.2 服务XML-RPC请求
15.3 在Medusa中使用XML-RPC
15.4 允许XML-RPC服务被远程终止
15.5 SimpleXMLRPCServer的一些细节
15.6 给一个XML-RPC服务提供一个wxPython GUI
15.7 使用Twisted的Perspective Broker
15.8 实现一个CORBA服务和客户
15.9 使用telnetlib执行远程登录
15.10 使用SSH执行远程登录
15.11 通过HTTPS验证一个SSL客户端
第16章 关于程序的程序
引言
16.1 验证字符串是否代表着一个合法的数字
16.2 导入一个动态生成的模块
16.3 导入一个名字在运行时被确定的模块
16.4 将参数和函数联系起来
16.5 组合函数
16.6 使用内建的Tokenizer给Python源码上色
16.7 合并和拆解Token
16.8 检查字符串是否有平衡的圆括号
16.9 在Python中模拟枚举
16.10 在创建列表推导时引用它自身
16.11 自动化py2exe将脚本编译成Windows可执行文件的过程
16.12 在UNIX中将主脚本和模块绑成一个可执行文件
第17章 扩展和嵌入
引言
17.1 实现一个简单的扩展类型
17.2 用Pyrex实现一个简单的扩展类型
17.3 在Python中使用C++库
17.4 调用Windows DLL的函数
17.5 在多线程环境中使用SWIG生成的模块
17.6 用PySequence_Fast将Python序列转为 C数组
17.7 用迭代器逐个访问Python序列的元素
17.8 从Python可调用的C函数中返回None
17.9 用gdb调试动态载入的C扩展
17.10 调试内存问题
第18章 算法
引言
18.1 消除序列中的重复
18.2 在保留序列顺序的前提下消除其中的重复
18.3 生成回置采样
18.4 生成无回置的抽样
18.5 缓存函数的返回值
18.6 实现一个FIFO容器
18.7 使用FIFO策略来缓存对象
18.8 实现一个Bag(Multiset)收集类型
18.9 在Python模拟三元操作符
18.10 计算素数
18.11 将整数格式化为二进制字符串
18.12 以任意数为基将整数格式化为字符串
18.13 通过法雷分数将数字转成有理数
18.14 带误差传递的数学计算
18.15 以最大精度求和
18.16 模拟浮点数
18.17 计算二维点集的凸包和直径
第19章 迭代器和生成器
引言
19.1 编写一个类似range的浮点数递增的函数
19.2 从任意可迭代对象创建列表
19.3 生成Fibonacci序列
19.4 在多重赋值中拆解部分项
19.5 自动拆解出需要的数目的项
19.6 以步长n将一个可迭代对象切成n片
19.7 通过重叠窗口循环序列
19.8 并行地循环多个可迭代对象
19.9 循环多个可迭代对象的矢量积
19.10 逐段读取文本文件
19.11 读取带有延续符的行
19.12 将一个数据块流处理成行流
19.13 用生成器从数据库中抓取大记录集
19.14 合并有序序列
19.15 生成排列、组合以及选择
19.16 生成整数的划分
19.17 复制迭代器
19.18 迭代器的前瞻
19.19 简化队列消费者线程
19.20 在另一个线程中运行迭代器
19.21 用itertools.groupby来计算汇总报告
第20章 描述符、装饰器和元类
引言
20.1 在函数调用中获得常新的默认值
20.2 用嵌套函数来编写property属性
20.3 给属性值起别名
20.4 缓存属性值
20.5 用同一个方法访问多个属性
20.6 封装一个方法来给类增加功能
20.7 增强所有方法来给类增加功能
20.8 在运行时给一个类实例添加方法
20.9 检查接口的实现
20.10 在自定义元类中正确地使用_ _new_ _和_ _init_ _
20.11 允许对List的可变方法的链式调用
20.12 通过更紧凑的语法使用协作的超类调用
20.13 不使用_ _init_ _来初始化实例属性
20.14 实例属性的自动初始化
20.15 重新加载时自动更新类实例
20.16 在编译时绑定常量
20.17 解决元类冲突
Flask Web开发:基于Python的Web应用开发实战
作为Python Web开发的微框架,Flask独树一帜。它不会强迫开发者遵循预置的开发规范,为开发者提供了自由度和创意空间。
《Flask Web开发 基于Python的Web应用开发实战》作者拥有25年软件开发经验,而本书则采用讲解与实例相结合的方式,不仅介绍了Flask安装、使用等基础知识,而且还带领读者一步一步地开发了社交博客Flasky。即使从未接触Flask,你也能轻松学会构建完整的Web应用。通读本书,你能熟悉Flask的核心功能,并掌握数据库迁移、Web服务通信等高级Web技术。
目录:
前言
第一部分 Flask简介
第1章 安装
1.1 使用虚拟环境
1.2 使用pip安装Python包
第2章 程序的基本结构
2.1 初始化
2.2 路由和视图函数
2.3 启动服务器
2.4 一个完整的程序
2.5 请求一响应循环
2.5.1 程序和请求上下文
2.5.2 请求调度
2.5.3 请求钩子
2.5.4 响应
2.6 Flask扩展
第3章 模板
3.1 Jinja2模板引擎
3.1.1 渲染模板
3.1.2 变量
3.1.3 控制结构
3.2 使用Flask—Bootstrap集成Twitter Bootstrap
3.3 自定义错误页面
3.4 链接
3.5 静态文件
3.6 使用:Flask—Moment本地化日期和时间
第4章 web表单
4.1 跨站请求伪造保护
4.2 表单类
4.3 把表单渲染成HTML
4.4 在视图函数中处理表单
4.5 重定向和用户会话
4.6 Flash消息
第5章 数据库
5.1 SQL数据库
5.2 NoSQL数据库
5.3 使用SQL还是NoSQL
5.4 Python数据库框架
5.5 使用FlaskSQLAlchemy管理数据库
5.6 定义模型
5.7 关系
5.8 数据库操作
5.8.1 创建表
5.8.2 插入行
5.8.3 修改行
5.8.4 册4除行
5.8.5 查询行
5.9 在视图函数中操作数据库
5.10 集成Python shell
5.11 使用FlaskMigrate实现数据库迁移
5.11.1 创建迁移仓库
5.11.2 创建迁移脚本
5.11.3 更新数据库
……
第6章 电子邮件
第7章 大型程序的结构
第二部分 实例:社会化博客程序
第8章 用户认证
第9章 用户角色
第10章 用户资料
第11章 博客文章
第12章 关注者
第13章 用户评论
第14章 程序编程接口
第三部分 成功在望
第15章 测试
第16章 性能
第17章 部署
第18章 其他资源
关于封面图
go.js去水印
该版本为1.5,其他版本可参考里面的去水印方法,资源里已有去水印的go.js。
Metronic v4.5.3
由于资源比较大,所以该资源为网盘下载地址和密码。
Metronic 是一套精美的响应式后台管理模板,基于强大的 Twitter Bootstrap 框架实现。
模板页面,包括图表、表格、地图、消息中心、监控面板等后台管理项目所需的各种组件。
zeromq:云时代极速消息通信库
通过建立应用程序来讲解如何使用ZeroMQ 编程技术构建多线程应用程序,并创建自己的消息传递架构。本书设计了大量工作实例来实现请求- 应答模式的高级使用和容错性,并对发布- 订阅模式的性能、可靠性、状态分发与监控进行了扩展。 本书面向的读者是希望制作大规模分布式软件的专业程序员和有志于这方面研究的专业人士,旨在帮助他们解决大规模、可扩展、低成本、高效率的问题,书中还展现了ZeroMQ所需的网络和分布式计算概念。
基于python2.7的webshell
基于python2.7的linux webshell,在centos7上测试成功
Python机器学习实战
目 录
第一部分 分类
第1章 机器学习基础 2
1.1 何谓机器学习 3
1.1.1 传感器和海量数据 4
1.1.2 机器学习非常重要 5
1.2 关键术语 5
1.3 机器学习的主要任务 7
1.4 如何选择合适的算法 8
1.5 开发机器学习应用程序的步骤 9
1.6 Python语言的优势 10
1.6.1 可执行伪代码 10
1.6.2 Python比较流行 10
1.6.3 Python语言的特色 11
1.6.4 Python语言的缺点 11
1.7 NumPy函数库基础 12
1.8 本章小结 13
第2章 k-近邻算法 15
2.1 k-近邻算法概述 15
2.1.1 准备:使用Python导入数据 17
2.1.2 从文本文件中解析数据 19
2.1.3 如何测试分类器 20
2.2 示例:使用k-近邻算法改进约会网站的配对效果 20
2.2.1 准备数据:从文本文件中解析数据 21
2.2.2 分析数据:使用Matplotlib创建散点图 23
2.2.3 准备数据:归一化数值 25
2.2.4 测试算法:作为完整程序验证分类器 26
2.2.5 使用算法:构建完整可用系统 27
2.3 示例:手写识别系统 28
2.3.1 准备数据:将图像转换为测试向量 29
2.3.2 测试算法:使用k-近邻算法识别手写数字 30
2.4 本章小结 31
第3章 决策树 32
3.1 决策树的构造 33
3.1.1 信息增益 35
3.1.2 划分数据集 37
3.1.3 递归构建决策树 39
3.2 在Python中使用Matplotlib注解绘制树形图 42
3.2.1 Matplotlib注解 43
3.2.2 构造注解树 44
3.3 测试和存储分类器 48
3.3.1 测试算法:使用决策树执行分类 49
3.3.2 使用算法:决策树的存储 50
3.4 示例:使用决策树预测隐形眼镜类型 50
3.5 本章小结 52
第4章 基于概率论的分类方法:朴素贝叶斯
第5章 Logistic回归
第6章 支持向量机
第7章 利用AdaBoost元算法提高分类
第二部分 利用回归预测数值型数据
第三部分 无监督学习
Django book中文版
Django book 2中文版
这是一本学习Django(python的一个框架)的书籍。其为django book网站翻译成中文,简单易懂。
计算机程序的构造和解释(原书第二版)高清.pdf
《计算机科学丛书:计算机程序的构造和解释(原书第2版)》1984年出版,成型于美国麻省理工学院(MIT)多年使用的一本教材,1996年修订为第2版。在过去的二十多年里,《计算机科学丛书:计算机程序的构造和解释(原书第2版)》对于计算机科学的教育计划产生了深刻的影响。第2版中大部分重要程序设计系统都重新修改并做过测试,包括各种解释器和编译器。作者根据其后十余年的教学实践,还对其他许多细节做了相应的修改。
这一版本中强调了几个新问题,其中**重要的是有关的不同的途径中,计算模型里对于时间的处理所起的中心作用:带有状态的对象、并发程序设计、函数式程序设计、惰性求值和非确定性程序设计。这里为并发和非确定性新增加了几节,我们也设法将这一论题集成到整本书里,贯穿始终。每一位严肃的计算机科学家都应该阅读这本书。由于本书清晰、简洁和富于才智,我们强烈推荐本书,它适合所有希望深刻理解计算机科学的人们。
Go语言编程(高清完整版)
目 录
第1章 初识Go语言 1
1.1 语言简史 1
1.2 语言特性 2
1.2.1 自动垃圾回收 3
1.2.2 更丰富的内置类型 4
1.2.3 函数多返回值 5
1.2.4 错误处理 6
1.2.5 匿名函数和闭包 6
1.2.6 类型和接口 7
1.2.7 并发编程 8
1.2.8 反射 9
1.2.9 语言交互性 10
1.3 第一个Go程序 11
1.3.1 代码解读 11
1.3.2 编译环境准备 12
1.3.3 编译程序 12
1.4 开发工具选择 13
1.5 工程管理 13
1.6 问题追踪和调试 18
1.6.1 打印日志 18
1.6.2 GDB调试 18
1.7 如何寻求帮助 18
1.7.1 邮件列表 19
1.7.2 网站资源 19
1.8 小结 19
第2章 顺序编程 20
2.1 变量 20
2.1.1 变量声明 20
2.1.2 变量初始化 21
2.1.3 变量赋值 21
2.1.4 匿名变量 22
2.2 常量 22
2.2.1 字面常量 22
2.2.2 常量定义 23
2.2.3 预定义常量 23
2.2.4 枚举 24
2.3 类型 24
2.3.1 布尔类型 25
2.3.2 整型 25
2.3.3 浮点型 27
2.3.4 复数类型 28
2.3.5 字符串 28
2.3.6 字符类型 30
2.3.7 数组 31
2.3.8 数组切片 32
2.3.9 map 36
2.4 流程控制 38
2.4.1 条件语句 38
2.4.2 选择语句 39
2.4.3 循环语句 40
2.4.4 跳转语句 41
2.5 函数 41
2.5.1 函数定义 42
2.5.2 函数调用 42
2.5.3 不定参数 43
2.5.4 多返回值 45
2.5.5 匿名函数与闭包 45
2.6 错误处理 47
2.6.1 error接口 47
2.6.2 defer 48
2.6.3 panic()和recover() 49
2.7 完整示例 50
2.7.1 程序结构 51
2.7.2 主程序 51
2.7.3 算法实现 54
2.7.4 主程序 57
2.7.5 构建与执行 59
2.8 小结 61
第3章 面向对象编程 62
3.1 类型系统 62
3.1.1 为类型添加方法 63
3.1.2 值语义和引用语义 66
3.1.3 结构体 67
3.2 初始化 68
3.3 匿名组合 68
3.4 可见性 71
3.5 接口 71
3.5.1 其他语言的接口 71
3.5.2 非侵入式接口 73
3.5.3 接口赋值 74
3.5.4 接口查询 76
3.5.5 类型查询 78
3.5.6 接口组合 78
3.5.7 Any类型 79
3.6 完整示例 79
3.6.1 音乐库 80
3.6.2 音乐播放 82
3.6.3 主程序 84
3.6.4 构建运行 86
3.6.5 遗留问题 86
3.7 小结 87
第4章 并发编程 88
4.1 并发基础 88
4.2 协程 90
4.3 goroutine 90
4.4 并发通信 91
4.5 channel 94
4.5.1 基本语法 95
4.5.2 select 95
4.5.3 缓冲机制 96
4.5.4 超时机制 97
4.5.5 channel的传递 98
4.5.6 单向channel 98
4.5.7 关闭channel 99
4.6 多核并行化 100
4.7 出让时间片 101
4.8 同步 101
4.8.1 同步锁 101
4.8.2 全局唯一性操作 102
4.9 完整示例 103
4.9.1 简单IPC框架 105
4.9.2 中央服务器 108
4.9.3 主程序 113
4.9.4 运行程序 116
4.10 小结 117
第5章 网络编程 118
5.1 Socket编程 118
5.1.1 Dial()函数 118
5.1.2 ICMP示例程序 119
5.1.3 TCP示例程序 121
5.1.4 更丰富的网络通信 122
5.2 HTTP编程 124
5.2.1 HTTP客户端 124
5.2.2 HTTP服务端 130
5.3 RPC编程 132
5.3.1 Go语言中的RPC支持与处理 132
5.3.2 Gob简介 134
5.3.3 设计优雅的RPC接口 134
5.4 JSON处理 135
5.4.1 编码为JSON格式 136
5.4.2 解码JSON数据 137
5.4.3 解码未知结构的JSON数据 138
5.4.4 JSON的流式读写 140
5.5 网站开发 140
5.5.1 最简单的网站程序 141
5.5.2 net/http包简介 141
5.5.3 开发一个简单的相册网站 142
5.6 小结 157
第6章 安全编程 158
6.1 数据加密 158
6.2 数字签名 158
6.3 数字证书 159
6.4 PKI体系 159
6.5 Go语言的哈希函数 159
6.6 加密通信 160
6.6.1 加密通信流程 161
6.6.2 支持HTTPS的Web服务器 162
6.6.3 支持HTTPS的文件服务器 165
6.6.4 基于SSL/TLS的ECHO程序 166
6.7 小结 169
第7章 工程管理 170
7.1 Go命令行工具 170
7.2 代码风格 172
7.2.1 强制性编码规范 172
7.2.2 非强制性编码风格建议 173
7.3 远程import支持 175
7.4 工程组织 175
7.4.1 GOPATH 176
7.4.2 目录结构 176
7.5 文档管理 177
7.6 工程构建 180
7.7 跨平台开发 180
7.7.1 交叉编译 181
7.7.2 Android支持 182
7.8 单元测试 183
7.9 打包分发 184
7.10 小结 184
第8章 开发工具 186
8.1 选择开发工具 186
8.2 gedit 187
8.2.1 语法高亮 187
8.2.2 编译环境 187
8.3 Vim 188
8.4 Eclipse 189
8.5 Notepad++ 192
8.5.1 语法高亮 192
8.5.2 编译环境 192
8.6 LiteIDE 193
8.7 小结 195
第9章 进阶话题 196
9.1 反射 196
9.1.1 基本概念 196
9.1.2 基本用法 197
9.1.3 对结构的反射操作 199
9.2 语言交互性 199
9.2.1 类型映射 200
9.2.2 字符串映射 201
9.2.3 C程序 201
9.2.4 函数调用 202
9.2.5 编译Cgo 203
9.3 链接符号 203
9.4 goroutine机理 204
9.4.1 协程 204
9.4.2 协程的C语言实现 205
9.4.3 协程库概述 205
9.4.4 任务 208
9.4.5 任务调度 210
9.4.6 上下文切换 211
9.4.7 通信机制 215
9.5 接口机理 216
9.5.1 类型赋值给接口 217
9.5.2 接口查询 223
9.5.3 接口赋值 224
AngularJS权威教程(中文版).pdf
AngularJS章节概述
第1章 初识AngularJS
1.1 浏览器如何获取网页
1.2 浏览器是什么
1.3 AngularJS是什么
第2章 数据绑定和第一个AngularJSWeb应用
2.1 AngularJS中的数据绑定
2.2 简单的数据绑定
2.3 数据绑定的最佳实践
第3章 模块
3.1 参数
3.1.1 name(字符串)
3.1.2 requires(字符串数组)
第4章 作用域
4.1 视图和$scope的世界
4.2 就是HTML而已
4.3 作用域能做什么
4.4 $scope的生命周期
4.5 指令和作用域
第5章 控制器
5.1 控制器嵌套(作用域包含作用域)
第6章 表达式
6.1 解析AngularJS表达式
6.2 插值字符串
第7章 过滤器
7.1 自定义过滤器
7.2 表单验证
第8章 指令简介
8.1 指令:自定义HTML元素和属性
8.2 向指令中传递数据
第9章 内置指令
9.1 基础ng属性指令
9.2 在指令中使用子作用域
第10章 指令详解
10.1 指令定义
10.2 指令作用域
10.3 绑定策略
10.4 AngularJS的生命周期
10.5 ngModel
10.6 自定义验证
第11章 AngularJS模块加载
11.1 配置
11.2 运行块
第12章 多重视图和路由
12.1 安装
12.2 布局模板
12.3 路由
12.4 $location服务
12.5 路由模式
12.5.3 关于搜索引擎索引
12.6 更多关于路由的内容
第13章 依赖注入
13.1 推断式注入声明
13.2 显式注入声明
13.3 行内注入声明
13.4 $injectorAPI
13.5 ngMin
第14章 服务
14.1 注册一个服务
14.2 使用服务
14.3 创建服务时的设置项
第15章 同外界通信:XHR和服务器通信
15.1 使用$http
15.2 设置对象
15.3 响应对象
15.4 缓存HTTP请求
15.5 拦截器
15.6 设置$httpProvider
15.7 使用$resource
15.8 安装
15.9 应用$resource
15.10 自定义$resource方法
15.11 $resource设置对象
15.12 $resource服务
15.13 使用Restangular
15.14 Restangular简介
15.15 安装Restangular
15.16 Restangular对象简介
15.17 使用Restangular
15.18 设置Restangular
第16章 XHR实践
16.1 跨域和同源策略
16.2 JSONP
16.3 使用CORS
16.4 服务器端代理
16.5 使用JSON
16.6 使用XML
16.7 使用AngularJS进行身份验证
16.8 和MongoDB通信
第17章 promise
第18章 服务器通信
第19章 测试
第20章 事件
第21章 架构
第22章 Angular动画
第23章 digest循环和$apply
第24章 揭秘Angular
第25章 AngularJS精华扩展
第26章 移动应用
第27章 本地化
第28章 缓存
第29章 安全性
第30章 AngularJS和IE浏览器
第31章 构建AngularChrome应用
第32章 优化Angular应用
第33章 调试AngularJS
第34章 下一步
第35章 总结
AngularJS权威教程
AngularJS权威教程,详细讲述了AngularJS的使用,中文版。