《跟老齐学Python:从入门到精通》是面向编程零基础读者的Python入门教程,内容涵盖了Python的基础知识和初步应用。以比较轻快的风格,向零基础的学习者介绍一门时下比较流行、并且用途比较广泛的编程语言,所以,《跟老齐学Python:从入门到精通》读起来不晦涩,并且在其中穿插了很多貌似与Python编程无关,但与学习者未来程序员职业生涯有关的内容。
《跟老齐学Python:从入门到精通》特别强调了学习和使用Python的基本方法,学习一种高级语言,掌握其各种规则是必要的,但学会“自省”方法更重要,这也是《跟老齐学Python:从入门到精通》所试图达到的“授人以鱼不如授人以渔”的目的。
目录
- 第1季 基础
- 第0章 预备 2
- 0.1 关于Python的故事 2
- 0.1.1 Python的昨天、今天和明天 3
- 0.1.2 Python的特点 4
- 0.1.3 Python哲学 5
- 0.2 从小工到专家 5
- 0.2.1 零基础 6
- 0.2.2 阅读代码 6
- 0.2.3 调试程序 7
- 0.3 安装Python 7
- 0.3.1 Ubuntu系统 8
- 0.3.2 Windows系统 9
- 0.3.3 Mac OS X系统 9
- 0.4 集成开发环境(IDE) 9
- 0.4.1 值得纪念的时刻:Hello world 9
- 0.4.2 集成开发环境概述 10
- 0.4.3 Python的IDE 12
- 第1章 基本的对象类型 13
- 1.1 数字 13
- 1.1.1 数字 14
- 1.1.2 变量 15
- 1.1.3 简单的四则运算 16
- 1.1.4 整数溢出问题 17
- 1.2 除法 17
- 1.2.1 整数与整数相除 17
- 1.2.2 浮点数与整数相除 18
- 1.2.3 引用模块解决除法问题 19
- 1.2.4 余数 20
- 1.2.5 四舍五入 20
- 1.3 常用数学函数和运算优先级 21
- 1.3.1 使用math模块 21
- 1.3.2 两个函数 23
- 1.3.3 运算优先级 23
- 1.4 第一个简单的程序 24
- 1.4.1 程序 24
- 1.4.2 用IDE编程 25
- 1.4.3 Hello,World 25
- 1.4.4 解一道题目 26
- 1.5 字符串 28
- 1.5.1 字符串 29
- 1.5.2 变量和字符串 30
- 1.5.3 连接字符串 31
- 1.5.4 转义字符 33
- 1.5.5 原始字符串 34
- 1.5.6 raw_input和print 34
- 1.5.7 索引和切片 37
- 1.5.8 基本操作 39
- 1.5.9 常用的字符串方法 42
- 1.5.10 字符串格式化输出 45
- 1.6 字符编码 47
- 1.6.1 编码 47
- 1.6.2 计算机中的字符编码 49
- 1.6.3 encode和decode 50
- 1.6.4 避免中文是乱码 51
- 1.7 列表 52
- 1.7.1 定义 52
- 1.7.2 索引和切片 53
- 1.7.3 反转 54
- 1.7.4 对list的操作 55
- 1.7.5 列表的函数 56
- 1.8 比较列表和字符串 66
- 1.8.1 相同点 66
- 1.8.2 区别 67
- 1.8.3 多维列表 68
- 1.8.4 列表和字符串的互相转化 69
- 1.8.5 "[sep]".join(list) 69
- 1.9 元组 70
- 1.9.1 定义 70
- 1.9.2 索引和切片 71
- 1.9.3 用途 72
- 1.10 字典 72
- 1.10.1 创建字典 73
- 1.10.2 访问字典的值 74
- 1.10.3 基本操作 75
- 1.10.4 字符串格式化输出 76
- 1.10.5 相关概念 77
- 1.10.6 字典的函数 77
- 1.11 集合 86
- 1.11.1 创建集合 86
- 1.11.2 集合的函数 88
- 1.11.3 补充知识 91
- 1.11.4 不变的集合 91
- 1.11.5 集合运算 92
- 第2章 语句和文件 95
- 2.1 运算符 95
- 2.1.1 算术运算符 95
- 2.1.2 比较运算符 96
- 2.1.3 逻辑运算符 97
- 2.2 简单语句 99
- 2.2.1 print 100
- 2.2.2 import 101
- 2.2.3 赋值 102
- 2.3 条件语句 104
- 2.3.1 if语句 104
- 2.3.2 if … elif … else 105
- 2.3.3 三元操作符 107
- 2.4 for循环 107
- 2.4.1 简单的for循环 107
- 2.4.2 range(start,stop[, step]) 109
- 2.4.3 for的对象 112
- 2.4.4 zip() 114
- 2.4.5 enumerate() 117
- 2.4.6 列表解析 119
- 2.5 while循环 120
- 2.5.1 猜数字游戏 120
- 2.5.2 break和continue 123
- 2.5.3 while...else 123
- 2.5.4 for...else 124
- 2.6 文件 124
- 2.6.1 打开文件 125
- 2.6.2 创建文件 127
- 2.6.3 使用with 128
- 2.6.4 文件的状态 129
- 2.6.5 read/readline/readlines 129
- 2.6.6 读很大的文件 132
- 2.6.7 seek( ) 133
- 2.7 迭代 134
- 2.7.1 迭代工具 135
- 2.7.2 文件迭代器 137
- 第3章 函数 139
- 3.1 理解函数 139
- 3.1.1 变量不仅仅是数 140
- 3.1.2 建立简单函数 140
- 3.1.3 建立实用的函数 141
- 3.1.4 关于命名 143
- 3.1.5 调用函数 144
- 3.1.6 注意事项 145
- 3.1.7 返回值 146
- 3.1.8 函数中的文档 148
- 3.2 名词辨析 149
- 3.2.1 参数和变量 149
- 3.2.2 全局变量和局部变量 150
- 3.2.3 命名空间 151
- 3.3 参数收集 152
- 3.3.1 参数收集 153
- 3.3.2 更优雅的方式 155
- 3.3.3 综合贯通 156
- 3.4 特殊函数 158
- 3.4.1 递归 158
- 3.4.2 几个特殊函数 160
- 3.5 练习 166
- 3.5.1 解一元二次方程 166
- 3.5.2 统计考试成绩 168
- 3.5.3 找质数 170
- 3.5.4 编写函数的注意事项 171
- 第2季 进阶
- 第4章 类 174
- 4.1 基本概念 174
- 4.1.1 问题空间 175
- 4.1.2 对象 175
- 4.1.3 面向对象 176
- 4.1.4 类 177
- 4.1.5 编写类 178
- 4.2 详解类 179
- 4.2.1 新式类和旧式类 179
- 4.2.2 创建类 181
- 4.2.3 类中的函数(方法) 183
- 4.2.4 类和实例 185
- 4.2.5 self的作用 185
- 4.2.6 文档字符串 186
- 4.3 辨析有关概念 187
- 4.3.1 类属性和实例属性 187
- 4.3.2 数据流转 189
- 4.3.3 命名空间 191
- 4.3.4 作用域 193
- 4.4 继承 194
- 4.4.1 基本概念 195
- 4.4.2 多重继承 196
- 4.4.3 多重继承的顺序 197
- 4.4.4 super函数 198
- 4.5 方法 200
- 4.5.1 绑定方法 200
- 4.5.2 非绑定方法 201
- 4.5.3 静态方法和类方法 201
- 4.6 多态和封装 203
- 4.6.1 多态 203
- 4.6.2 封装和私有化 206
- 4.7 特殊属性和方法 208
- 4.7.1 __dict__ 208
- 4.7.2 __slots__ 212
- 4.7.3 __getattr__、__setattr__和其他类似方法 213
- 4.7.4 获得属性顺序 217
- 4.8 迭代器 218
- 4.8.1 __iter__() 218
- 4.8.2 range()和xrange() 220
- 4.9 生成器 221
- 4.9.1 简单的生成器 221
- 4.9.2 定义和执行过程 223
- 4.9.3 yield 224
- 4.9.4 生成器方法 225
- 第5章 错误和异常 227
- 5.1 错误 227
- 5.2 异常 227
- 5.3 处理异常 230
- 5.3.1 try...except... 230
- 5.3.2 处理多个异常 232
- 5.3.3 else子句 234
- 5.3.4 finally子句 235
- 5.3.5 assert语句 236
- 第6章 模块 239
- 6.1 编写模块 239
- 6.1.1 模块是程序 239
- 6.1.2 模块的位置 241
- 6.1.3 __all__在模块中的作用 243
- 6.1.4 包和库 245
- 6.2 自带电池 245
- 6.2.1 引用方式 246
- 6.2.2 深入探究 247
- 6.2.3 帮助、文档和源码 248
- 6.3 标准库 250
- 6.3.1 sys 250
- 6.3.2 copy 253
- 6.3.3 os 254
- 6.3.4 heapq 261
- 6.3.5 deque 266
- 6.3.6 calendar 267
- 6.3.7 time 269
- 6.3.8 datetime 273
- 6.3.9 urllib 275
- 6.3.10 urllib2 279
- 6.3.11 XML 280
- 6.3.12 JSON 287
- 6.4 第三方库 289
- 6.4.1 安装第三方库 289
- 6.4.2 以requests为例 290
- 第7章 保存数据 295
- 7.1 pickle 295
- 7.2 shelve 297
- 7.3 MySQL数据库 299
- 7.3.1 MySQL概况 299
- 7.3.2 安装 300
- 7.3.3 运行 300
- 7.3.4 安装python-MySQLdb 301
- 7.3.5 连接数据库 302
- 7.3.6 数据库表 303
- 7.3.7 操作数据库 304
- 7.3.8 更新数据 309
- 7.4 MongoDB数据库 310
- 7.4.1 安装MongoDB 311
- 7.4.2 启动 311
- 7.4.3 安装pymongo 312
- 7.4.4 连接MongoDB 312
- 7.4.5 编辑 314
- 7.5 SQLite数据库 317
- 7.5.1 建立连接对象 318
- 7.5.2 游标对象 318
- 7.6 电子表格 320
- 7.6.1 openpyl 321
- 7.6.2 其他第三方库 326
- 第3季 实战
- 第8章 用Tornado做网站 328
- 8.1 为做网站而准备 328
- 8.1.1 开发框架 328
- 8.1.2 Python框架 329
- 8.1.3 Tornado 329
- 8.1.4 安装Tornado 330
- 8.2 分析Hello 331
- 8.2.1 Web服务器工作流程 332
- 8.2.2 解剖标本 332
- 8.3 做个简单的网站 336
- 8.3.1 基本结构 336
- 8.3.2 一个基本架势 337
- 8.3.3 连接数据库 340
- 8.3.4 登录界面 340
- 8.3.5 数据传输 345
- 8.3.6 数据处理 347
- 8.3.7 模板 350
- 8.3.8 转义字符 355
- 8.3.9 模板继承 357
- 8.3.10 CSS 358
- 8.3.11 cookie和安全 359
- 8.3.12 XSRF 362
- 8.3.13 用户验证 364
- 8.3.14 相关概念 367
- 8.3.15 Tornado的同步 368
- 8.3.16 异步设置 369
- 第9章 科学计算 373
- 9.1 为计算做准备 373
- 9.1.1 闲谈 373
- 9.1.2 安装 374
- 9.1.3 基本操作 374
- 9.2 Pandas 376
- 9.2.1 基本的数据结构 376
- 9.2.2 读取CSV文件 382
- 9.2.3 处理股票数据 387