Python程序设计基础及实践(慕课版 第2版)

北京大学人气讲师力作,零基础Python入门教程,数据分析、爬虫必备技能,配套资源丰富
分享 推荐 0 收藏 43 阅读 3.0K
郭炜 (作者) 978-7-115-64147-2

关于本书的内容有任何问题,请联系 刘博

1. 本课程最大的特点就是面向零基础学生,强调实用,而且全面、简洁,去掉不实用的细枝末节。比如爬虫内容,在有的教材是专门讲一本书,在本课程中一周学时即可解决。本课程的教学设计来源于北京大学“文科计算机基础”课程的教学,特别能够注意到初学者常犯的错误,避免初学者踩坑浪费时间。
2. 本书配套慕课在中国大学慕课平台选课人数众多,每学期有上万人选择本科。
3. 本书配套资源丰富,有慕课,还有在线教学网站,可方便老师进行在线教学管理。

内容摘要

本书是一部零基础、重实践、大广度的Python编程教材。本书覆盖面广,包括计算机基础知识、Python的基本要素和语法、Python生态、正则表达式、数据分析和可视化、网络爬虫、面向对象程序设计、tkinter图形界面程序设计等内容。本书还专门用一章的篇幅讲述基础算法,让读者初学编程就牢固建立计算思维。
本书大量例题、习题来自北京大学开放在线程序评测平台OpenJudge,例题、习题与当下许多软件和互联网公司招聘面试题的形式相同,非常适合作为强调就业导向、强调高标准实践性的教学改革的配套教材。
本书可作为高等职业院校计算机类专业的教材。文、理、艺术等各类专业的零基础学生可以学习并掌握本书90%的内容;余下10%的内容则面向计算机类专业学生。即便是已经学过其他程序设计语言的计算机类专业学生,也可以通过本书来快速掌握Python语法及各种库的使用方法。
本书配套电子资料十分丰富,包括程序源代码、重点难点讲解视频、课程讲义、习题答案等。此外,作者在中国大学MOOC(慕课)开设的“实用Python程序设计”课程,提供了覆盖全书90%内容的视频讲解。

目录

第1章 计算机基础常识
1.1 信息在计算机中的表示和存储 1
1.1.1 用0和1表示信息 1
1.1.2 二进制和十六进制 2
1.2 计算机程序设计语言 4
1.2.1 机器语言 4
1.2.2 汇编语言 5
1.2.3 高级语言 5
1.2.4 Python简史 6
1.3 习题 7
第2章 Python语言的基本要素
2.1 Python开发环境的搭建 8
2.2 Python的语句 9
2.3 注释 10
2.4 常量 11
2.5 变量 12
2.6 赋值语句 12
2.7 Python数据类型 14
2.8 字符串简介 14
2.8.1 字符串的基本概念 14
2.8.2 字符串的下标 15
2.8.3 连接字符串 15
2.8.4 用“in”“not in”判断子串 16
2.8.5 字符串和数值的转换 16
2.9 输入和输出 17
2.9.1 输出语句print 17
2.9.2 输入语句input 17
2.9.3 输出格式控制 19
2.10 列表简介 20
2.10.1 列表的基本概念 20
2.10.2 字符串分割成列表 20
2.11 常见语法错误排查 21
2.12 OpenJudge做题指南及例题讲解 21
2.13 习题 25
第3章 基本运算和条件分支语句
3.1 算术运算 26
3.2 关系运算和bool类型 28
3.3 逻辑运算 30
3.4 运算符的优先级 31
3.5 条件分支语句 32
3.6 条件分支语句例题 33
3.7 习题 40
第4章 循环语句
4.1 for循环语句 41
4.2 break语句和continue语句 45
4.3 多重循环 45
4.4 while循环语句 48
4.5 异常处理 51
4.6 循环综合例题 53
4.7 调试程序的方法 57
4.8 习题 58
第5章 函数
5.1 函数概述 59
5.2 全局变量和局部变量 62
★5.3 参数个数可变的函数 63
5.4 函数参数的默认值 64
5.5 Python的库函数 64
5.6 lambda表达式 65
★★5.7 高阶函数和闭包 66
★★★5.8 生成器 67
5.9 习题 69
第6章 递归
6.1 递归的基本概念 70
6.2 先做一步再递归:上台阶问题 72
★6.3 问题分解:汉诺塔问题 72
★★6.4 递归替代循环:N皇后问题 76
★6.5 递归绘制分形图案:绘制雪花曲线 78
6.6 习题 81
第7章 复杂数据类型
7.1 Python变量的指针本质 82
7.2 字符串详解 85
7.2.1 转义字符 85
7.2.2 三单引号和三双引号字符串 86
7.2.3 在字符串中使用编码代替字符 87
7.2.4 字符串的切片 88
7.2.5 字符串的分割 88
7.2.6 字符串的成员函数 89
7.2.7 字符串的格式化 91
7.2.8 f-string 92
7.3 元组 92
7.3.1 元组的基本概念 92
7.3.2 元组的操作 94
7.4 列表详解 95
7.4.1 列表基础用法 95
7.4.2 列表的成员函数 98
7.4.3 列表的排序 99
7.4.4 列表的映射和过滤 103
7.4.5 列表生成式 104
★7.4.6 二维列表 105
★7.4.7 列表的复制 107
7.4.8 列表、元组和字符串的互相转换 109
7.5 字典 109
7.5.1 字典的基本概念 109
7.5.2 字典的函数 111
7.5.3 字典例题:单词出现频率统计 112
7.6 集合 113
7.7 自定义数据类型:类 116
7.8 习题 118
第8章 计算思维
8.1 计算机的本质 121
8.2 计算机解决问题的基本方法—穷举 122
★8.3 程序或算法的时间复杂度 123
8.4 有序就能找得快 127
8.5 习题 128
第9章 文件读写
9.1 概述 129
9.2 文本文件的编码 130
9.3 读写文本文件 132
9.4 文件的相对路径和绝对路径 134
★9.5 文件夹的操作 135
★9.6 命令行参数 137
★9.7 文本文件处理综合实例 138
9.8 数据交换文件格式csv 141
★9.9 数据交换字符串格式JSON 142
★★★9.10 字节流和字符串的互相转换 143
★★★9.11 二进制文件的读写 144
9.12 习题 148
第10章 正则表达式
10.1 功能字符和字符组合 149
10.2 查找匹配的子串 153
10.3 边界符号 155
10.4 匹配选项 156
10.5 分组 157
10.6 '|' 的用法 160
★★10.7 替换匹配的子串 161
10.8 贪婪匹配和懒惰匹配 162
★★★10.9 条件匹配 163
★★★10.10 断言 164
10.11 字符串分割 167
10.12 应用实例 167
10.13 习题 168
第11章 玩转Python生态
11.1 Python库的安装、导入和使用 170
11.2 日期和时间库datetime 172
11.3 随机库random 173
★11.4 用OpenPyXL库处理Excel文档 174
★★★11.5 SQLite3数据库编程 179
11.5.1 数据库的结构 179
11.5.2 SQL数据库查询语句 179
11.6 jieba分词库 184
★★11.7 图像处理库PIL 186
11.7.1 图像的基本变换 187
11.7.2 图像的裁剪 188
11.7.3 图像的素描化 189
★★★11.7.4 给图像添加水印 190
★★★11.7.5 照片的exif信息及在图像上绘图和写字 192
11.8 多模块程序设计 194
11.9 Python程序的打包分发 197
11.10 习题 197
第12章 数据分析和可视化
12.1 多维数组库NumPy 199
12.2 数据分析库pandas 203
12.3 用Matplotlib绘制统计图 210
12.3.1 绘制柱状图 210
12.3.2 绘制折线图和散点图 214
12.3.3 绘制饼图 215
12.3.4 绘制热力图 215
12.3.5 绘制雷达图 216
12.3.6 绘制面积图 218
★★12.3.7 多子图绘图 219
12.4 习题 220
第13章 网络爬虫
13.1 基础爬虫四步走 221
13.2 网页获取三招式 225
13.3 用BeautifulSoup分析网页 228
13.4 用pyppeteer爬取JavaScript动态生成的网页 232
★★13.5 用pyppeteer爬取需要登录的网站 233
★★★13.6 用pyppeteer+requests编写快速爬虫 239
13.7 如何对付反爬虫措施 241
13.8 习题 241
第14章 面向对象程序设计入门
14.1 结构化程序设计和面向对象程序设计 242
14.2 Python中的类 243
14.3 对象的比较 245
14.4 输出对象 246
14.5 继承和派生 247
14.6 静态属性和静态方法 249
14.7 对象作为集合元素或字典的键 250
第15章 tkinter图形界面程序设计
15.1 控件概述 253
15.2 图形界面的布局 255
15.3 为控件绑定状态变量和事件响应函数 258
15.4 综合示例—Python火锅店点菜系统 262
15.5 对话框 266
15.6 菜单和多行编辑框示例 270
★★15.7 在图形界面中用Matplotlib绘制统计图和显示图像 272
★★15.8 Notebook、PanedWindow和TreeView控件 275
15.9 习题 276

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

郭炜 北京大学信息学院教师,担任北京大学ACM国际大学生程序设计竞赛队教练多年,曾6次为ACM-ICPC亚洲区预选赛命题,是国内为该项赛事主持命题次数最多的人。 研究方向:计算机辅助教学,北京角斗士软件技术有限公司创始人,开发多款英语学习软件。

相关图书

人邮微信
本地服务
人邮微信
教师服务
二维码
读者服务
读者服务
返回顶部
返回顶部