第1章 欢迎来到Python的世界 1
1.1 Python是什么 1
1.1.1 Python是一门语言 1
1.1.2 Python是一个工具 1
1.1.3 Python是一瓶胶水 1
1.2 获取Python 2
1.2.1 Windows 2
1.2.2 Linux 4
1.2.3 macOS 4
1.2.4 Android 7
1.2.5 iOS 8
1.3 初试Python 9
1.4 Python的优点 10
1.4.1 简洁优美 10
1.4.2 上手简单 11
1.4.3 应用广泛 11
1.4.4 平台独立 11
1.5 Python的应用 11
小结 12
习题 13
第2章 写Python代码的工具 14
2.1 交互式解释器 14
2.2 IPython 14
2.3 IDLE 16
2.4 PyCharm 19
2.4.1 安装PyCharm 20
2.4.2 初始化PyCharm 21
2.4.3 创建第一个项目 21
小结 25
习题 25
第3章 强大的包管理器pip 26
3.1 包 26
3.2 包管理器 26
3.3 pip 27
3.3.1 pip3 search 27
3.3.2 pip3 list 28
3.3.3 pip3 check 28
3.3.4 pip3 download 29
3.3.5 pip3 install 29
3.3.6 pip3 freeze 29
3.3.7 pip3 uninstall 30
小结 30
习题 30
第4章 基本计算 31
4.1 四则运算 31
4.2 数值类型 31
4.2.1 整型(integer) 32
4.2.2 浮点型(float) 33
4.2.3 复数类型(complex) 34
4.2.4 布尔型(bool) 34
4.3 数值类型转换 34
4.4 变量 35
4.4.1 什么是变量 35
4.4.2 声明变量 36
4.4.3 动态类型 36
4.4.4 命名规则 36
4.5 运算符 36
4.5.1 算术运算符 37
4.5.2 比较运算符和逻辑运算符 37
4.5.3 赋值运算符 38
4.5.4 复合赋值运算符 39
4.5.5 位运算符 40
4.5.6 运算符优先级 46
小结 47
习题 47
第5章 控制语句 48
5.1 执行结构 48
5.2 控制语句 49
5.2.1 顺序结构 49
5.2.2 选择结构 50
5.2.3 循环结构 52
5.2.4 Break,Continue,Pass 54
小结 55
习题 55
第6章 字符串与输入 56
6.1 字符串表示 56
6.2 转义字符 57
6.3 格式化字符串 58
6.4 字符串输入 61
6.5 字符串运算 61
6.6 字符串内建方法 62
6.6.1 count(sub[,start[,end]]) 63
6.6.2 find(sub[,start[,end]]) 63
6.6.3 isalpha()和isdigit() 63
6.6.4 join(iterable) 63
6.6.5 lstrip([chars]),rstrip([chars])和strip([chars]) 63
6.6.6 split(sep=None,maxsplit=-1) 64
6.6.7 startswith(prefix[,start[,end]]) 64
6.6.8 zfill(width) 64
小结 64
习题 65
第7章 Tuple,List,Dict 66
7.1 什么是数据结构 66
7.2 Tuple(元组) 67
7.2.1 切片 67
7.2.2 修改 69
7.2.3 遍历 70
7.2.4 查找 70
7.2.5 内置函数 70
7.3 List(列表) 71
7.3.1 添加 71
7.3.2 删除 71
7.3.3 修改 72
7.3.4 排序和翻转 73
7.3.5 推导式 74
7.4 Dict(字典) 74
7.4.1 访问 75
7.4.2 修改 76
7.4.3 添加 76
7.4.4 删除 77
7.4.5 遍历 77
7.5 嵌套 78
7.6 字符串与Tuple 79
7.6.1 访问 79
7.6.2 遍历 79
小结 79
习题 80
第8章 函数 81
8.1 认识Python的函数 81
8.2 函数的定义和调用 81
8.2.1 定义 81
8.2.2 调用 82
8.3 函数的参数 82
8.3.1 默认参数 83
8.3.2 任意位置参数 84
8.3.3 任意键值参数 84
8.3.4 组合使用 84
8.3.5 修改传入的参数 86
8.4 函数的返回值 88
8.4.1 返回一个值 88
8.4.2 什么都不返回 88
8.4.3 返回多个值 88
8.5 函数的嵌套 89
8.5.1 作用域 89
8.5.2 global和nonlocal 90
8.6 使用轮子 91
8.6.1 随机库 91
8.6.2 日期库 91
8.6.3 数学库 92
8.6.4 操作系统库 92
8.6.5 第三方库 92
8.6.6 文档 92
小结 93
习题 93
第9章 实战1:2048小游戏 94
9.1 规则简介 94
9.2 创建项目 96
9.3 代码设计 97
9.3.1 棋盘存储 97
9.3.2 棋盘移动 97
9.3.3 用户交互 99
9.4 代码实现 101
9.4.1 棋盘定义 101
9.4.2 棋盘初始化 101
9.4.3 棋盘移动——向下 102
9.4.4 生成新数字 104
9.4.5 其他方向判断和移动 104
9.4.6 检查所有方向移动 107
9.4.7 用户界面 108
9.4.8 用户操作处理 109
9.4.9 处理用户的操作 110
9.4.10 游戏主体逻辑 111
9.5 提升游戏体验 111
小结 113
习题 113
第10章 Python编码规范 114
10.1 PEP 8 114
10.1.1 代码布局 114
10.1.2 命名规范 118
10.1.3 自动检查调整 119
10.2 PEP 484 120
10.2.1 类型提示 120
10.2.2 PyCharm中的类型提示 121
10.2.3 扩展的类型提示 122
10.3 PEP 526 122
小结 123
习题 123
第11章 面向对象编程 124
11.1 面向对象 124
11.1.1 类 124
11.1.2 对象 125
11.1.3 类和对象的关系 125
11.1.4 面向过程还是对象 126
11.2 类的定义 127
11.2.1 类名 127
11.2.2 属性 127
11.2.3 方法 128
11.3 特殊的实例方法 131
11.3.1 初始化和析构 131
11.3.2 转字符串 132
11.3.3 实现运算符 133
小结 134
习题 134
第12章 封装、继承和多态 135
12.1 封装 135
12.1.1 使用slots 135
12.1.2 访问控制 135
12.2 继承 137
12.2.1 父类与子类 137
12.2.2 私有属性和方法 138
12.2.3 单继承和多继承 140
12.2.4 覆盖父类方法 140
12.2.5 调用父类方法 141
12.3 多态 142
小结 143
习题 143
第13章 生成器与迭代器 145
13.1 初探迭代器 145
13.2 生成器 146
13.3 迭代器 151
13.3.1可迭代对象 151
13.3.2迭代器 152
13.4 生成器推导式 152
小结 153
习题 153
第14章 函数式编程 154
14.1 匿名函数 154
14.2 高阶函数 154
14.2.1 map 154
14.2.2 filter 155
14.2.3 reduce 156
14.3 闭包 156
14.4 装饰器 158
小结 162
习题 162
第15章 文件读写 163
15.1 打开文件 163
15.1.1 file 163
15.1.2 mode 164
15.1.3 encoding 165
15.2 关闭文件 165
15.3 读文件 166
15.3.1 read 166
15.3.2 readline 166
15.3.3 readlines 167
15.3.4 迭代 167
15.4 写文件 168
15.4.1 write和writelines 168
15.4.2 flush 168
15.5 定位读写 168
15.5.1 tell 168
15.5.2 seek 168
15.6 数据序列化 169
15.6.1 Pickle 169
15.6.2 JSON 170
15.7 文件系统操作 172
15.7.1 os.listdir(path=’.’) 172
15.7.2 os.mkdir(path,mode=0o777) 172
15.7.3 os.makedirs(name,mode=0o777,exist_ok=False) 172
15.7.4 os.remove(path) 173
15.7.5 os.rmdir(path) 173
15.7.6 os.removedirs(name) 173
15.7.7 os.rename(src,dst) 173
15.7.8 os.path.exists(path) 173
15.7.9 os.path.isfile(path) 173
15.7.10 os.path.join(path,paths) 173
15.7.11 os.path.split(path) 174
小结 174
习题 174
第16章 异常处理 175
16.1 什么是异常 175
16.1.1 错误(Bug) 175
16.1.2 异常(Exception) 175
16.2 捕获异常 176
16.3 抛出异常 178
16.3.1 raise 178
16.3.2 调用栈 179
16.3.3 内建异常 179
16.3.4 传递异常 180
16.4 断言 181
16.5 实现自定义异常 182
16.6 with关键字 183
16.6.1 上下文管理器 183
16.6.2 上下文管理协议 183
16.6.3 一个例子:计时器 184
小结 184
习题 185
第17章 模块和包 186
17.1 模块 186
17.1.1 为什么需要模块 186
17.1.2 模块的导入 186
17.2 编写模块 187
17.2.1 第一个模块 187
17.2.2 _name_ 188
17.2.3 重载模块 189
17.3 包 189
17.3.1 为什么需要包 189
17.3.2 第一个包 189
17.3.3 打包与导入 191
小结 193
习题 193
第18章 实战2:微信聊天机器人 194
py 194
应用场景 194
基本用法 194
创建机器人 194
给好友发送消息 195
保持运行 195
试一试 195
决定“吃啥” 197
关键词回复 198
智能聊天 198
完整代码 200
小结 201
习题 201
参考文献 202