关于我们
书单推荐
新书推荐
|
滚雪球学Python 读者对象:本书适合大中专在校学生、互联网从业人员,以及想进入互联网行业的人员阅读,也可用作培训机构 教材或自学资料。
本书用滚雪球的思维讲解 Python 的知识体系。 本书共 31 章,分为 3 个部分。 第 1 部分为基础篇,包括第 1~15 章,介绍 Python 语言核心知识点。 第 2 部分为进阶篇,包括第 16~28 章,是进阶内容,也是 Python 语言的魅力点所在。通过对这部分 内容的学习,读者会全方位地感受到 Python 的灵活、迅捷、禅意。 第 3 部分为实战篇,包括第 29~31 章,通过 3 个实战案例,介绍 Python 的数据处理能力,以及 Python 在网站方面的应用。
第 1 部分 基础篇
1 Python 正确起手式 ................................................................................... 1 1.1 滚雪球学 Python 课程前置导语 ................................................................................... 1 1.2 Python 语言简介 ............................................................................................................ 1 1.2.1 Python 作者 ........................................................................................................ 2 1.2.2 Python 语言发展简介 ........................................................................................ 2 1.2.3 Python 语言的前景 ............................................................................................ 2 1.3 Python 环境安装 ............................................................................................................ 3 1.3.1 Python 3.7.x 安装 ............................................................................................... 3 1.3.2 PyCharm 安装 .................................................................................................... 4 1.4 学语言先学注释 ............................................................................................................ 8 1.4.1 注释符号 ............................................................................................................ 9 1.4.2 多行注释 ............................................................................................................ 9 1.5 认识变量 ...................................................................................................................... 10 1.5.1 变量命名规则 .................................................................................................. 11 1.5.2 不合规变量名举例 .......................................................................................... 11 1.6 打印输出函数 print() ................................................................................................... 12 1.7 数学运算及优先级问题 .............................................................................................. 12 1.8 赋值运算符 .................................................................................................................. 13 2 无门槛掌握数据类型与输入/输出函数 ..................................................... 14 2.1 基本数据类型 .............................................................................................................. 14 2.1.1 数值数据类型 .................................................................................................. 15 2.1.2 整数的不同形式表示 ...................................................................................... 15 2.1.3 数据类型强制转换 .......................................................................................... 16 2.1.4 扩展几个数值数据类型常用的函数 .............................................................. 17 2.1.5 布尔值数据类型 .............................................................................................. 18 2.1.6 字符串数据类型 .............................................................................................. 18 2.2 输入与输出 .................................................................................................................. 21 2.2.1 print()函数格式化输出 .................................................................................... 22 2.2.2 format()函数 ..................................................................................................... 23 2.2.3 input()函数数据输入 ....................................................................................... 24 3 无转折不编程 ......................................................................................... 25 3.1 关系运算符 .................................................................................................................. 25 3.2 算术运算符 .................................................................................................................. 26 3.3 逻辑运算符 .................................................................................................................. 27 3.4 编程中的转折——流程控制 ...................................................................................... 27 3.4.1 if 语句 .............................................................................................................. 27 3.4.2 if…else…语句 ................................................................................................. 29 3.4.3 if…elif…else…语句 ........................................................................................ 29 3.4.4 if 语句的嵌套................................................................................................... 30 4 列表一学完,Python 会一半 ................................................................... 31 4.1 列表是个啥 .................................................................................................................. 31 4.1.1 列表定义 .......................................................................................................... 31 4.1.2 列表读取 .......................................................................................................... 32 4.1.3 列表切片 .......................................................................................................... 33 4.1.4 列表相关内置函数 .......................................................................................... 33 4.1.5 列表元素的修改与删除 .................................................................................. 34 4.1.6 列表相加、相乘、删除 .................................................................................. 35 4.2 初识 Python 面向对象 ................................................................................................. 36 4.2.1 字符串对象的方法 .......................................................................................... 36 4.2.2 快速获取系统内置方法 .................................................................................. 37 4.3 通过方法增删列表元素 .............................................................................................. 38 4.3.1 追加列表元素 .................................................................................................. 38 4.3.2 插入列表元素 .................................................................................................. 39 4.3.3 删除列表元素 .................................................................................................. 40 4.4 列表排序 ...................................................................................................................... 40 4.4.1 排序方法 sort() ................................................................................................ 41 4.4.2 排序函数 sorted() ............................................................................................. 41 4.5 其他列表方法 .............................................................................................................. 42 4.5.1 检索元素索引 .................................................................................................. 42 4.5.2 统计列表元素出现次数 .................................................................................. 42 4.5.3 转换为字符串 .................................................................................................. 43 4.5.4 追加列表 .......................................................................................................... 43 4.6 多维列表 ...................................................................................................................... 43 4.7 特殊的列表字符串 ...................................................................................................... 44 4.7.1 字符串索引与切片 .......................................................................................... 44 4.7.2 可用于字符串的部分函数和方法 .................................................................. 44 4.7.3 将字符串转换为列表 ...................................................................................... 44 5 Python 循环的本质就是一段代码懒得重复写 .......................................... 45 5.1 for 循环 ........................................................................................................................ 45 5.1.1 for 循环基本使用 ............................................................................................ 45 5.1.2 for 循环嵌套 if 判断语句 ................................................................................ 46 5.2 range()函数 .................................................................................................................. 46 5.3 for 循环补充知识 ........................................................................................................ 48 5.3.1 for 循环嵌套 .................................................................................................... 48 5.3.2 break 终止循环 ................................................................................................ 49 5.3.3 continue 继续循环 ........................................................................................... 49 5.3.4 for…else 循环 .................................................................................................. 50 5.4 while 循环 .................................................................................................................... 51 5.4.1 while 循环的经典应用 .................................................................................... 51 5.4.2 while 循环其他说明 ........................................................................................ 52 6 Python 元组,不可变的列表 ................................................................... 53 6.1 元组的定义 .................................................................................................................. 53 6.2 读取元组中的元素 ...................................................................................................... 54 6.3 元组的其他知识补充 .................................................................................................. 54 6.4 元组与列表转换 .......................................................................................................... 55 6.5 内置函数 zip() ............................................................................................................. 55 6.6 元组的功能与应用场景 .............................................................................................. 56 7 字典怎么查,Python 字典就怎么用 ........................................................ 57 7.1 字典的基本操作 .......................................................................................................... 57 7.1.1 字典的定义 ...................................................................................................... 57 7.1.2 获取字典的值 .................................................................................................. 58 7.1.3 增加元素、修改元素、删除元素 .................................................................. 58 7.1.4 字典的补充知识 .............................................................................................. 59 7.2 字典的遍历 .................................................................................................................. 60 7.2.1 遍历字典的键值 .............................................................................................. 60 7.2.2 遍历字典的键 .................................................................................................. 61 7.2.3 遍历字典的值 .................................................................................................. 61 7.3 字典与其他数据类型的结合 ...................................................................................... 62 7.3.1 列表嵌套字典 .................................................................................................. 62 7.3.2 字典嵌套列表 .................................................................................................. 62 7.4 字典的方法 .................................................................................................................. 62 7.4.1 fromkeys()方法 ................................................................................................ 62 7.4.2 get()方法 .......................................................................................................... 63 7.4.3 setdefault()方法 ................................................................................................ 63 7.4.4 pop()方法 ......................................................................................................... 64 8 Python 中无序且元素唯一的数据类型——集合 ...................................... 65 8.1 集合是什么 .................................................................................................................. 65 8.1.1 集合的声明 ...................................................................................................... 65 8.1.2 set()函数定义集合 ........................................................................................... 66 8.2 集合的操作 .................................................................................................................. 67 8.2.1 交集 .................................................................................................................. 67 8.2.2 并集 .................................................................................................................. 67 8.2.3 差集 .................................................................................................................. 68 8.2.4 对称差集 .......................................................................................................... 68 8.3 集合的方法 .................................................................................................................. 69 8.3.1 集合的增删 ...................................................................................................... 69 8.3.2 集合的其地方法 .............................................................................................. 70 8.4 集合可用的内置函数和冻结集合 .............................................................................. 71 9 函数是 Python 基础部分的第一道难关.................................................... 72 9.1 函数出现的背景 .......................................................................................................... 72 9.2 函数初接触 .................................................................................................................. 72 9.2.1 函数的定义 ...................................................................................................... 72 9.2.2 无参数无返回值的函数 .................................................................................. 73 9.3 函数的参数设计 .......................................................................................................... 74 9.3.1 传递一个参数 .................................................................................................. 74 9.3.2 传递多个参数 .................................................................................................. 74 9.3.3 关键词参数 ...................................................................................................... 75 9.3.4 参数默认值 ...................................................................................................... 75 9.4 函数返回值 .................................................................................................................. 76 9.4.1 返回 None ........................................................................................................ 76 9.4.2 返回一个值 ...................................................................................................... 76 9.4.3 返回多个值 ...................................................................................................... 77 9.4.4 返回字典与列表 .............................................................................................. 77 9.5 调用函数时参数是列表 .............................................................................................. 77 9.6 局部变量与全局变量 .................................................................................................. 78 9.7 传递任意数量的参数 .................................................................................................. 79 9.7.1 普通参数与任意参数的组合 .......................................................................... 79 9.7.2 普通参数与任意数量的关键词参数 .............................................................. 80 9.8 函数的扩展学习 .......................................................................................................... 81 10 Python 面向对象的编程 ....................................................................... 82 10.1 类的定义与使用 ........................................................................................................ 82 10.1.1 定义类、属性与方法 .................................................................................... 82 10.1.2 属性与方法的调用 ........................................................................................ 83 10.1.3 类的构造函数 ................................................................................................ 84 10.1.4 属性初始值 .................................................................................................... 85 10.2 封装 ............................................................................................................................ 86 10.2.1 私有属性 ........................................................................................................ 86 10.2.2 私有方法 ........................................................................................................ 87 10.3 继承 ............................................................................................................................ 88 10.3.1 继承的简单应用 ............................................................................................ 88 10.3.2 子类与父类有相同名称的属性或方法 ........................................................ 89 10.3.3 子类用父类的方法 ........................................................................................ 90 10.4 多态 ............................................................................................................................ 91 10.5 多重继承 .................................................................................................................... 92 10.6 对象的数据类型判断 ................................................................................................ 92 10.7 isinstance()函数 ......................................................................................................... 92 10.8 特殊属性、方法 ........................................................................................................ 93 11 Python 模块的设计与应用 ................................................................... 95 11.1 将函数放到模块中 .................................................................................................... 95 11.2 应用函数模块 ............................................................................................................ 96 11.2.1 import 导入模块 ............................................................................................ 96 11.2.2 导入模块的某个函数 .................................................................................... 97 11.2.3 as 别名 ............................................................................................................ 97 11.3 将类放到模块中 ........................................................................................................ 98 11.3.1 import 导入模块 ............................................................................................ 98 11.3.2 导入模块中的类 ............................................................................................ 99 11.4 常见模块 .................................................................................................................... 99 11.4.1 随机数 random 模块 ...................................................................................... 99 11.4.2 时间模块 ...................................................................................................... 101 12 Python 文件读取与写入 ..................................................................... 102 12.1 文件夹和文件路径 .................................................................................................. 102 12.1.1 绝对路径和相对路径 .................................................................................. 103 12.1.2 os 模块与 os.path 模块 ................................................................................ 103 12.1.3 路径检查方法 .............................................................................................. 105 12.1.4 目录操作 ...................................................................................................... 105 12.1.5 获取文件大小 .............................................................................................. 106 12.1.6 获取指定目录下的所有内容 ...................................................................... 106 12.2 Python 读写文件 ...................................................................................................... 106 12.2.1 读取文件 ...................................................................................................... 106 12.2.2 写入文件 ...................................................................................................... 109 12.3 shutil 模块 ................................................................................................................ 110 12.3.1 文件复制 ...................................................................................................... 110 12.3.2 复制目录 ...................................................................................................... 111 12.3.3 多功能 move()方法 ..................................................................................... 111 12.3.4 删除有数据的目录 ...................................................................................... 111 13 Python 程序异常处理与 logging 模块 ................................................ 112 13.1 程序异常 .................................................................................................................. 112 13.1.1 最常见的错误——除数为 0 ....................................................................... 112 13.1.2 try…except 语句 .......................................................................................... 113 13.1.3 try…except…else 语句 ................................................................................ 114 13.2 异常类型 .................................................................................................................. 115 13.2.1 常见的异常类型 .......................................................................................... 115 13.2.2 捕捉多个异常 .............................................................................................. 116 13.2.3 一个 except 捕获多个异常 .......................................................................... 116 13.2.4 直接抛出异常 .............................................................................................. 116 13.3 finally 语句 .............................................................................................................. 117 13.4 日志模块 logging ..................................................................................................... 117 13.4.1 日志信息等级 .............................................................................................. 117 13.4.2 格式化 logging 日志信息 ............................................................................ 118 13.4.3 将程序日志输出到文件中 .......................................................................... 119 13.4.4 停用程序日志 .............................................................................................. 120 14 在 Python 中操作 SQLite 数据库 ....................................................... 121 14.1 SQLite 基本使用 ..................................................................................................... 121 14.2 建立 SQLite 数据库表 ............................................................................................ 122 14.3 向表中增加数据 ...................................................................................................... 124 14.4 查询数据库中的表数据 .......................................................................................... 125 14.5 更新表数据 .............................................................................................................. 126 14.6 删除表数据 .............................................................................................................. 127 15 Python 中的多线程与多进程.............................................................. 128 15.1 Python 中的多线程 .................................................................................................. 128 15.1.1 简单的多线程 .............................................................................................. 129 15.1.2 向子线程中传递参数 .................................................................................. 130 15.1.3 线程命名 ...................................................................................................... 131 15.1.4 Daemon 守护线程 ....................................................................................... 133 15.1.5 堵塞主线程 .................................................................................................. 134 15.1.6 使用 is_alive()方法检验子线程是否在工作 .............................................. 135 15.1.7 自定义线程类 .............................................................................................. 136 15.1.8 资源锁定与解锁 .......................................................................................... 136 15.2 subprocess 模块 ....................................................................................................... 137 15.2.1 Popen()方法 ................................................................................................. 138 15.2.2 Popen()方法的参数 ..................................................................................... 138 15.2.3 通过关键字 start 打开程序 ......................................................................... 138 第 2 部分 进阶篇 16 列表与元组、字典与集合 .................................................................. 139 16.1 为何列表和元组总放在一起 .................................................................................. 139 16.1.1 列表和元组的切片 ...................................................................................... 140 16.1.2 负数索引与二者相互转换 .......................................................................... 140 16.1.3 列表与元组的存储方式 .............................................................................. 140 16.1.4 列表和元组的应用场景 .............................................................................. 141 16.2 字典与集合的那些事儿 .......................................................................................... 143 16.2.1 字典和集合的基础操作 .............................................................................. 143 16.2.2 字典与集合的排序 ...................................................................................... 145 16.2.3 字典与集合的效率问题 .............................................................................. 146 17 列表推导式与字典推导式 .................................................................. 148 17.1 列表推导式 .............................................................................................................. 148 17.2 字典推导式 .............................................................................................................. 150 17.3 元组推导式与集合推导式 ...................................................................................... 151 18 lambda 表达式 .................................................................................. 152 18.1 lambda 表达式的基本使用 ..................................................................................... 152 18.2 lambda 表达式与 def 定义函数的区别 .................................................................. 153 18.3 lambda 表达式的应用场景 ..................................................................................... 154 18.4 不要滥用 lambda 表达式 ........................................................................................ 155 19 内置函数 filter()、map()、reduce()、zip()、enumerate() .................. 156 19.1 filter()函数 ............................................................................................................... 156 19.2 map()函数 ................................................................................................................ 156 19.3 reduce()函数 ............................................................................................................. 157 19.4 zip()函数 .................................................................................................................. 158 19.5 enumerate()函数 ....................................................................................................... 159 20 函数装饰器 ........................................................................................ 160 20.1 装饰器的基本使用 .................................................................................................. 160 20.2 对带参数的函数进行装饰 ...................................................................................... 162 20.3 多个装饰器 .............................................................................................................. 164 20.4 functools.wraps ........................................................................................................ 168 20.5 基于类的装饰器 ...................................................................................................... 169 20.6 内置装饰器 .............................................................................................................. 170 21 闭包................................................................................................... 171 21.1 闭包的基本操作 ...................................................................................................... 171 21.2 闭包的作用域 .......................................................................................................... 172 21.3 闭包的作用 .............................................................................................................. 173 21.4 判断闭包函数 .......................................................................................................... 173 21.5 闭包存在的问题 ...................................................................................................... 174 22 Python 中的日期与时间 ..................................................................... 175 22.1 日期/时间模块简介 ................................................................................................. 175 22.2 time 时间模块 .......................................................................................................... 176 22.2.1 get_clock_info()函数 ................................................................................... 176 22.2.2 获取时间戳 .................................................................................................. 178 22.2.3 获取可读时间 .............................................................................................. 178 22.2.4 单调时间 monotonic time ............................................................................ 179 22.2.5 处理器时钟时间 .......................................................................................... 179 22.2.6 性能计数器 time.perf_counter ..................................................................... 180 22.2.7 时间组件 ...................................................................................................... 180 22.2.8 解析和格式化时间 ...................................................................................... 181 22.2.9 time 模块 ...................................................................................................... 182 22.3 datetime 模块 ........................................................................................................... 182 22.3.1 date 类 .......................................................................................................... 182 22.3.2 time 类 .......................................................................................................... 184 22.3.3 datetime 类 ................................................................................................... 184 22.3.4 timedelta 类 .................................................................................................. 184 22.4 calendar 模块 ........................................................................................................... 185 23 global 和 nonlocal 作用域 .................................................................. 186 23.1 Python 中的作用域 .................................................................................................. 186 23.2 global 关键字 ........................................................................................................... 187 22.3 nonlocal 关键字 ....................................................................................................... 189 24 Python 中的哈希表与可哈希对象 ...................................................... 191 24.1 哈希表(散列表) .................................................................................................. 191 24.2 可哈希与不可哈希 .................................................................................................. 191 24.3 hash()函数 ................................................................................................................ 192 24.4 hashlib 模块 ............................................................................................................. 193 25 Python 内置模块之 random ............................................................... 194 25.1 基本随机函数 .......................................................................................................... 194 25.1.1 seed()与 random()函数 ................................................................................ 194 25.1.2 getstate()和 setstate(state)函数 .................................................................... 195 25.2 扩展随机函数 .......................................................................................................... 196 25.2.1 randint()和 randrange()函数 ........................................................................ 196 25.2.2 getrandbits(k)和 choice(seq)函数 ................................................................ 197 25.2.3 shuffle(seq)和 sample(pop,k)函数 ............................................................... 197 25.3 分布随机函数 .......................................................................................................... 197 25.3.1 uniform(a,b)、betavariate 和 triangular 函数 .............................................. 198 25.3.2 其他分布随机函数 ...................................................................................... 198 26 Python 内置模块之 re,正则表达式的初阶用法 ................................ 199 26.1 re 库的应用 .............................................................................................................. 199 26.1.1 正则表达式语法 .......................................................................................... 199 26.1.2 re 库的基本用法 .......................................................................................... 200 26.2 re 库相关函数说明 .................................................................................................. 201 26.2.1 re.search()函数 ............................................................................................. 201 26.2.2 re.match()函数 ............................................................................................. 202 26.2.3 re.findall()函数 ............................................................................................. 202 26.2.4 re.split()函数 ................................................................................................ 202 26.2.5 re.finditer()函数 ........................................................................................... 204 26.2.6 re.sub()函数 .................................................................................................. 204 26.3 re 库的面向对象写法 .............................................................................................. 205 26.4 re 库的 match 对象 .................................................................................................. 205 26.4.1 match 对象的属性 ....................................................................................... 205 26.4.2 match 对象的方法 ....................................................................................... 206 27 sys 库、os 库、getopt 库与 filecmp 库 .............................................. 207 27.1 os 库 ......................................................................................................................... 207 27.1.1 os 库路径操作 ............................................................................................. 208 27.1.2 os 库进程管理 ............................................................................................. 209 27.1.3 os 库运行环境相关参数.............................................................................. 209 27.2 sys 库 ........................................................................................................................ 210 27.2.1 常见参数 ...................................................................................................... 210 27.2.2 常见方法 ...................................................................................................... 211 27.3 getopt 库 ................................................................................................................... 212 27.4 filecmp 库 ................................................................................................................. 213 27.4.1 filecmp.cmp()、filecmp.cmpfiles()函数 ...................................................... 213 27.4.2 目录比较 ...................................................................................................... 214 28 类函数、成员函数、静态函数、抽象函数和方法伪装属性 ................ 215 28.1 类函数 ...................................................................................................................... 215 28.2 静态函数 .................................................................................................................. 216 28.3 类函数与静态函数在继承类中的表现 .................................................................. 217 28.4 抽象函数 .................................................................................................................. 218 28.5 方法伪装属性 .......................................................................................................... 219 第 3 部分 实战篇 29 爬虫案例——某育儿网问答数据抓取................................................. 222 29.1 爬虫分析 .................................................................................................................. 222 29.1.1 类别页面分析 .............................................................................................. 222 29.1.2 问题列表页面分析 ...................................................................................... 224 29.2 爬虫逻辑编码 .......................................................................................................... 225 29.2.1 逻辑编码(伪代码) .................................................................................. 225 29.2.2 requests 库中的 get()方法说明 ................................................................... 225 29.2.3 获取所有的分类页面地址 .......................................................................... 228 29.2.4 循环所有的分类页面地址 .......................................................................... 228 29.2.5 获取每个分类对应的列表页面,并获取总页码 ...................................... 229 29.2.6 从第 1 页循环到总页码 .............................................................................. 229 29.3 案例收尾 .................................................................................................................. 230 30 爬虫案例——奥特曼图片采集 ........................................................... 232 30.1 目标站点分析 .......................................................................................................... 232 30.2 编码 .......................................................................................................................... 234 31 Python 开源框架:Flask ................................................................... 239 31.1 Flask 简介 ................................................................................................................ 239 31.1.1 完成一个 hello world 网页 .......................................................................... 239 31.1.2 获取用户请求数据 ...................................................................................... 241 31.1.3 在 URL 中提供多个参数 ............................................................................ 242 31.2 在 Flask 中操作数据库 ........................................................................................... 244 31.3 使用 Flask 模块实现 ajax 数据入库 ....................................................................... 247
你还可能感兴趣
我要评论
|