本书是面向初学者的Python入门书,强调基础知识,兼顾实践应用。 基础篇介绍Python程序设计的入门知识,共12章,重点包括:Python介绍、安装和运行;Python的基本概念(对象、数据类型、变量、表达式、内置函数);输入和输出;程序设计的基本结构;函数和类;序列操作(列表、元组、集合、字典);字符串;正则表达式;文件读写;目录与文件操作;常用标准库。排错篇总结初学者常遇到的错误并介绍程序调试方法,包含2章:Python错误类型、Python代码调试。 本书为读者提供完整的教学资料包。作为学习的完整架构,与本书内容相关的文本篇和应用篇以电子出版物形式出版。 本书适合作为高等院校文科类各专业学生学习Python和大数据应用的教材,也可供相关从业人员学习参考。
胡凤国,男,中国传媒大学副教授,中国中文信息处理学会会员,省部级项目面向语言监测的汉语自动分词标注系统研究负责人,国社科项目计算语言学方法研究成员,汉语复杂网络研究成员。
目 录
第一篇 基础篇
第1章 Python介绍 2
1.1 什么是Python 2
1.1.1 有一种编程语言叫Python 2
1.1.2 Python的发展史 3
1.1.3 Python的版本选择 3
1.2 为什么要学习Python 5
1.2.1 为什么要学编程 5
1.2.2 学编程为什么选Python 6
1.3 怎样学习Python 7
第2章 Python的安装和运行 9
2.1 安装Python软件 9
2.1.1 软件下载 9
2.1.2 安装 11
2.1.3 测试 15
2.2 运行Python代码 19
2.2.1 交互式运行 19
2.2.2 脚本式运行 21
2.2.3 命令行运行 23
2.2.4 扩展式运行 25
2.2.5 运行Python代码的误区 25
2.2.6 合法的Python语句 25
2.3 Python代码书写规范 28
2.4 Python扩展库和标准库 32
2.4.1 扩展库的安装 32
2.4.2 标准库和扩展库的使用 37
第3章 Python的基本概念 40
3.1 数据和数据类型 40
3.1.1 数据与对象 40
3.1.2 数据类型 41
3.2 变量与关键字 52
3.2.1 对象的存储 52
3.2.2 变量 52
3.2.3 关键字 56
3.3 运算符和表达式 57
3.3.1 常量数据和变量数据 57
3.3.2 运算符 57
3.3.3 表达式 70
3.4 内置函数和内置对象 72
3.4.1 内置函数 72
3.4.2 内置对象 81
思考题 86
第4章 输入和输出 87
4.1 数据输入 87
4.1.1 获取输入数据 87
4.1.2 转换输入数据 87
4.1.3 处理输入错误 89
4.2 数据输出 91
4.2.1 最简单的数据输出 92
4.2.2 数据格式化 98
4.3 综合举例 103
4.3.1 十进制转二进制(一) 103
4.3.2 鸡兔同笼(一) 103
4.3.3 韩信点兵(一) 104
4.3.4 换酒问题(一) 104
4.3.5 最大公约数(一) 105
4.3.6 交换两个变量的值 106
思考题 106
第5章 基本程序结构 109
5.1 结构化程序设计 109
5.1.1 顺序结构 109
5.1.2 选择结构 110
5.1.3 循环结构 110
5.1.4 结构嵌套 111
5.2 顺序结构 112
5.2.1 顺序结构举例 113
5.2.2 顺序结构的拼接 113
5.3 选择结构 114
5.3.1 单分支选择结构 115
5.3.2 双分支选择结构 115
5.3.3 多分支选择结构 116
5.3.4 选择结构的嵌套 118
5.3.5 条件表达式 120
5.3.6 选择结构的多样性 121
5.4 循环结构 123
5.4.1 while循环 123
5.4.2 for 循环 125
5.4.3 continue语句 126
5.4.4 break语句 127
5.4.5 循环结构中的else子句 127
5.5 循环结构的嵌套 129
5.6 综合举例 130
5.6.1 十进制转二进制(二) 130
5.6.2 鸡兔同笼(二) 131
5.6.3 韩信点兵(二) 132
5.6.4 换酒问题(二) 132
5.6.5 最大公约数(二) 132
5.6.6 百钱百鸡 135
5.6.7 兔子数列 135
5.6.8 奇数幻方 136
5.6.9 哥德巴赫猜想(一) 138
5.6.10 信息加密(一) 139
5.6.11 求圆周率 139
5.6.12 海龟画图 142
思考题 152
第6章 函数和类 159
6.1 使用函数的好处 159
6.2 函数的定义和调用 160
6.2.1 函数的定义 160
6.2.2 函数的调用 160
6.2.3 关于函数返回值的注意事项 162
6.3 函数参数的传递与接收 163
6.3.1 函数参数的传递方式 163
6.3.2 函数形参接收实参的形式 165
6.4 函数中的局部变量和全局变量 166
6.5 lambda表达式 167
6.6 生成器函数 169
6.7 自定义函数库 170
6.8 递归函数 172
6.8.1 什么是递归函数 172
6.8.2 递归函数和算法 173
6.8.3 Python中的最大递归次数 175
6.8.4 递归函数举例 175
6.8.5 递归与循环的关系 182
6.8.6 递归函数的时间效率 182
6.9 类和对象 184
6.9.1 类和对象的概念 184
6.9.2 类的定义和使用示例 184
思考题 185
第7章 Python的序列操作 188
7.1 序列结构 188
7.2 列表及其操作 189
7.2.1 列表的标准形式 189
7.2.2 列表对象的创建和删除 190
7.2.3 列表元素的读取、修改和删除 190
7.2.4 列表对象常用的方法 191
7.2.5 用内置函数对列表进行操作 195
7.2.6 用运算符对列表进行运算 197
7.2.7 列表推导式 199
7.3 元组及其操作 200
7.3.1 元组的概念 200
7.3.2 元组的标准形式 201
7.3.3 元组对象的创建 201
7.3.4 元组元素的读取 201
7.3.5 元组对象常用的方法 202
7.3.6 用内置函数对元组进行操作 202
7.3.7 用运算符对元组进行运算 202
7.3.8 生成器推导式 203
7.4 字典及其操作 203
7.4.1 字典的标准形式 203
7.4.2 字典的创建 204
7.4.3 字典元素的添加和修改 204
7.4.4 字典元素的读取 205
7.4.5 字典元素的删除 206
7.4.6 字典对象常用的方法 207
7.4.7 用内置函数对字典进行操作 207
7.4.8 用运算符对字典进行运算 209
7.5 集合及其操作 209
7.5.1 集合的标准形式 209
7.5.2 集合的创建 210
7.5.3 集合元素的添加 210
7.5.4 集合元素的删除 210
7.5.5 集合元素的读取 211
7.5.6 集合对象常用的方法 211
7.5.7 用内置函数对集合进行操作 211
7.5.8 用运算符对集合进行运算 212
7.6 切片 212
7.6.1 切片的格式 213
7.6.2 用切片对列表的元素进行增删改 214
7.7 NumPy和Pandas扩展库的简单操作 214
7.7.1 NumPy扩展库 214
7.7.2 Pandas扩展库 217
7.8 序列类对象的通用操作总结 220
7.9 综合举例 221
7.9.1 判断列表中有无重复元素 221
7.9.2 百分制转五分制 222
7.9.3 中文星期名称转英文星期名称 222
7.9.4 判断某年某月有几天 223
7.9.5 求两个可迭代对象的笛卡尔积 223
7.9.6 查找列表中最小元素的所有位置 224
7.9.7 查找N以内的所有素数 224
7.9.8 年份生肖(一) 226
7.9.9 农村小孩的乳名(一) 227
7.9.10 天干地支顺序配对(一) 228
7.9.11 判断黑洞数(一) 229
7.9.12 哥德巴赫猜想(二) 230
7.9.13 信息加密(二) 231
思考题 232
第8章 字符串 234
8.1 字符串的表示 234
8.1.1 字符串界定符 234
8.1.2 转义字符 235
8.1.3 原始字符串 236
8.1.4 字符串和字符的区分 236
8.1.5 字符串的标准形式 237
8.1.6 长字符串的表示方法 237
8.1.7 三引号注释 238
8.2 字符串的操作 238
8.2.1 Python关于对象的通用操作 238
8.2.2 关于序列类对象的通用操作 238
8.2.3 关于有序序列类对象的通用操作 239
8.2.4 关于元素可比较的有序序列类对象的通用操作 240
8.2.5 针对字符串对象的其他操作 240
8.3 字符串方法 240
8.3.1 格式化类的方法 241
8.3.2 排版类的方法 241
8.3.3 类型判断类的方法 242
8.3.4 查找类的方法 243
8.3.5 统计类的方法 244
8.3.6 首尾匹配类的方法 244
8.3.7 分割类的方法 244
8.3.8 合并类的方法 246
8.3.9 大小写转换类的方法 246
8.3.10 削边类的方法 247
8.3.11 替换类的方法 247
8.3.12 编码解码类方法 248
8.4 字词统计和中文分词 249
8.4.1 字符统计 249
8.4.2 词语统计 251
8.4.3 中文自动分词和词性标注 253
8.5 综合举例 254
8.5.1 屏蔽敏感词 254
8.5.2 年份生肖(二) 255
8.5.3 农村小孩的乳名(二) 255
8.5.4 天干地支顺序配对(二) 255
8.5.5 判断黑洞数(二) 256
8.5.6 哥德巴赫猜想(三) 256
8.5.7 信息加密(三) 256
8.5.8 公民身份号码 257
8.5.9 十进制转任意进制 260
思考题 261
第9章 正则表达式 263
9.1 什么是正则表达式 263
9.2 正则表达式的语法 264
9.2.1 万能符 265
9.2.2 转义符 265
9.2.3 元字符 266
9.2.4 选字符 267
9.2.5 连字符 267
9.2.6 脱字符 268
9.2.7 简写符 268
9.2.8 选串符 269
9.2.9 定位符 269
9.2.10 分组符 270
9.2.11 数量符 270
9.2.12 非贪婪匹配标识符 270
9.2.13 子表达式 271
9.2.14 预查 272
9.2.15 命名子表达式 273
9.3 在Python中使用正则表达式 273
9.3.1 re.findall函数 274
9.3.2 re.match函数 277
9.3.3 re.search函数 278
9.3.4 re.split函数 279
9.3.5 re.sub和re.subn函数 280
9.3.6 re.escape函数 280
9.3.7 re.compile函数 281
9.4 综合举例 282
思考题 285
第10章 文件读写 287
10.1 文件简介 287
10.2 内置函数open 288
10.2.1 open函数的参数介绍 288
10.2.2 open函数的mode参数详解 288
10.2.3 文件对象的方法 289
10.3 文本文件的读写 290
10.3.1 从文本文件读取数据 290
10.3.2 将数据写入文本文件 291
10.3.3 用上下文管理语句with来管理文本文件读写 292
10.4 JSON文件的读写 292
10.5 CSV文件的读写 293
10.6 二进制文件的读写 296
思考题 296
第11章 目录与文件操作 298
11.1 文件和目录 298
11.1.1 驱动器 298
11.1.2 目录、文件夹、路径 298
11.1.3 目录名和文件名的命名规范 299
11.1.4 当前目录 299
11.1.5 环境变量 300
11.1.6 绝对路径和相对路径 300
11.1.7 可执行程序和应用程序 301
11.1.8 默认应用程序 301
11.2 文件目录操作的有关标准库介绍 302
11.2.1 os.path标准库介绍 302
11.2.2 os标准库介绍 305
11.2.3 shutil标准库的常用函数介绍 314
11.3 文件目录操作需要考虑的因素 315
11.4 文件目录操作 316
11.4.1 无读取写入文件 317
11.4.2 读取文件无写入 317
11.4.3 无读取写入目录 318
11.4.4 读取目录无写入 318
11.4.5 读取文件写入文件 319
11.4.6 读取文件写入目录 320
11.4.7 读取目录写入文件 320
11.4.8 读取目录写入目录 321
思考题 324
第12章 常用的Python标准库 325
12.1 collections标准库 325
12.2 copy标准库 327
12.3 decimal标准库 327
12.4 fractions标准库 328
12.5 functools标准库 329
12.6 itertools标准库 330
12.6.1 combinations对象 330
12.6.2 permutations对象 331
12.6.3 product对象 331
12.7 math标准库 333
12.8 random标准库 333
12.8.1 choice函数 334
12.8.2 randint函数 334
12.8.3 random函数 334
12.8.4 randrange函数 334
12.8.5 sample函数 335
12.8.6 shuffle函数 335
12.8.7 uniform函数 336
12.8.8 应用示例 336
12.9 sys标准库 337
12.9.1 获取Python解释器的位置 337
12.9.2 添加扩展库搜索目录 338
12.9.3 终止运行Python程序 338
12.9.4 获取命令行参数 339
12.10 tempfile标准库 342
12.10.1 功能介绍 342
12.10.2 应用示例 344
12.11 time标准库 344
12.11.1 有关概念 344
12.11.2 函数介绍 345
12.11.3 应用示例 346
12.12 datetime标准库 349
12.12.1 datetime标准库定义的常用类 349
12.12.2 应用示例 353
思考题 353
第二篇 排错篇
第13章 常见错误类型 356
13.1 编码错误 356
13.2 缩进错误 357
13.2.1 不当缩进错误 357
13.2.2 混用制表符和空格 358
13.3 语法错误 358
13.3.1 混淆大小写 358
13.3.2 混淆全半角 359
13.3.3 写错关键词 359
13.3.4 括号不配对 360
13.3.5 用三引号注释代码块引起语法错误 360
13.3.6 其他语法错误 361
13.4 运行错误 361
13.4.1 数学运算错误 361
13.4.2 数据类型错误 361
13.4.3 下标越界错误 362
13.4.4 文本文件编码错误 363
13.4.5 扩展库出错 364
13.4.6 计算机配置环境出错 365
13.5 逻辑错误 367
13.5.1 循环终值设定有问题 367
13.5.2 不同用途的变量同名 367
13.5.3 不该变的变量值被改变 368
13.5.4 语句缩进层次不清 368
13.5.5 混淆运算符的优先级 368
13.5.6 列表赋值错误 369
13.5.7 调用对象的方法不加括号 370
13.5.8 算法错误 370
第14章 代码调试 371
14.1 输出对比法 371
14.2 IDLE调试法 373
14.3 装饰器方法 375
附录A 环境变量设置 378
附录B 常用Python语句 383
附录C 常用Python运算符 384
附录D 内置函数format 385
附录E %格式化方法 387
附录F 不能显示的四字节汉字 389
附录G PyPDF2的BUG及解决方案 391
参考文献 393