互联网
类型
9.1
豆瓣评分
可以朗读
语音朗读
492千字
字数
2026-01-01
发行日期
展开全部
主编推荐语
本书用“讲故事+做项目”的方式带你走进Python世界。
内容简介
本书的前半部分(第1~8章)用浅显易懂的语言将Python基础知识、语法、数据结构等串起来,后半部分(第9~24章)则把这些概念直接投入真实场景,让Python程序替你批量整理文件夹、填报电子表格、抓取网页数据、生成PDF报告、定时发送邮件,甚至让计算机“开口说话”。
本书的案例聚焦日常痛点,会先讲思路,再给代码,并在实践项目中分步骤拆解和演 示编程实践,非常有助于读者边学边上手。值得一提的是,本书还结合大语言模型(LLM)给出了一些更加巧妙的实践技巧。
目录
- 版权信息
- 版 权 声 明
- 内 容 提 要
- 对本书的赞誉
- 作 者 简 介
- 技术审校者简介
- 英文版技术审校者简介
- 中文版技术审校者简介
- 序
- 致 谢
- 前 言
- 为谁而写
- 编码约定
- 版式约定
- 编程简介
- Python简介
- 拋弃谬误,重新看待编程
- 程序员无须具备很多数学知识
- 什么时候学习编程都不晚
- AI不会取代程序员
- 涵盖的内容
- 下载并安装Python
- 下载并安装Mu
- 启动Mu
- 启动IDLE
- 交互式环境
- 寻求帮助
- 正确地提出编程问题
- 关于第3版的说明
- 小结
- 资源与支持
- 资源获取
- 提交错误信息
- 与我们联系
- 关于异步社区和异步图书
- 第一部分 编程基础
- 第1章 Python基础
- 1.1 在交互式环境中输入表达式
- 1.2 整型、浮点型和字符串数据类型
- 1.3 字符串的拼接和复制
- 1.4 在变量中存储值
- 1.4.1 赋值语句
- 1.4.2 变量名
- 1.5 编写第一个程序
- 1.6 程序详解
- 1.6.1 注释
- 1.6.2 函数print()
- 1.6.3 函数input()
- 1.6.4 问候语
- 1.6.5 函数len()
- 1.6.6 函数str()、int()和float()
- 1.6.7 函数type()
- 1.6.8 函数round()和abs()
- 1.7 计算机如何使用二进制数存储数据
- 1.8 小结
- 第2章 if-else和流程控制
- 2.1 布尔值
- 2.2 比较运算符
- 2.3 布尔运算符
- 2.4 混合使用布尔运算符和比较运算符
- 2.5 流程控制的组成部分
- 2.5.1 条件
- 2.5.2 代码块
- 2.5.3 程序执行
- 2.6 流程控制语句
- 2.6.1 if语句
- 2.6.2 else语句
- 2.6.3 elif语句
- 2.7 小程序1:反转日
- 2.8 小程序2:不诚实的容量计算器
- 2.9 小结
- 第3章 循环
- 3.1 while循环语句
- 3.1.1 一个恼人的while循环
- 3.1.2 break语句
- 3.1.3 continue语句
- 3.2 for循环和range()函数
- 3.2.1 等价的while循环
- 3.2.2 range()的参数
- 3.3 导入模块
- 3.4 使用sys.exit()提前结束程序
- 3.5 小程序3:猜数
- 3.6 小程序4:剪刀、石头、布
- 3.7 小结
- 第4章 函数
- 4.1 创建函数
- 4.2 实参和形参
- 4.3 返回值和return语句
- 4.4 None值
- 4.5 具名形参
- 4.6 调用栈
- 4.7 局部作用域和全局作用域
- 4.7.1 作用域规则
- 4.7.2 global语句
- 4.7.3 确定变量是全局变量还是局部变量
- 4.8 异常处理
- 4.9 小程序5:之字形运动
- 4.10 小程序6:绘制尖峰
- 4.11 小结
- 第5章 调试
- 5.1 引发异常
- 5.2 断言
- 5.3 日志
- 5.3.1 logging模块
- 5.3.2 日志文件
- 5.3.3 一种糟糕的做法:使用print()进行调试
- 5.3.4 日志等级
- 5.3.5 禁用日志
- 5.4 Mu的调试器
- 5.4.1 调试一个执行加法运算的程序
- 5.4.2 设置断点
- 5.5 小结
- 第6章 列表
- 6.1 列表数据类型
- 6.1.1 索引
- 6.1.2 负数索引
- 6.1.3 切片
- 6.1.4 函数len()
- 6.1.5 更新列表中的值
- 6.1.6 拼接和复制
- 6.1.7 del语句
- 6.2 使用列表
- 6.2.1 for循环与列表
- 6.2.2 运算符in和not in
- 6.2.3 多重赋值技巧
- 6.2.4 列表元素枚举
- 6.2.5 随机选择和随机排序
- 6.3 增强赋值运算符
- 6.4 方法
- 6.4.1 查找值
- 6.4.2 添加值
- 6.4.3 删除值
- 6.4.4 对值进行排序
- 6.4.5 以相反的顺序排列值
- 6.5 短路求值
- 6.6 小程序7:列表版魔力八号球
- 6.7 序列数据类型
- 6.7.1 可变数据类型和不可变数据类型
- 6.7.2 元组数据类型
- 6.7.3 转换为列表和元组
- 6.8 引用
- 6.8.1 实参
- 6.8.2 函数copy()和deepcopy()
- 6.9 小程序8:黑客帝国屏保
- 6.10 小结
- 第7章 字典与数据结构化
- 7.1 字典数据类型
- 7.1.1 比较字典和列表
- 7.1.2 返回键和值
- 7.1.3 检查指定的键是否存在
- 7.1.4 设置默认值
- 7.2 使用数据结构对实物建模
- 7.3 项目1:交互式国际象棋棋盘模拟器
- 7.3.1 第1步:初始化
- 7.3.2 第2步:创建棋盘模板
- 7.3.3 第3步:显示棋盘的当前状态
- 7.3.4 第4步:操作棋盘
- 7.4 嵌套的字典和列表
- 7.5 小结
- 第8章 字符串与文本编辑
- 8.1 使用字符串
- 8.1.1 字符串字面量
- 8.1.2 索引和切片
- 8.1.3 运算符in和not in
- 8.2 f-字符串
- 8.3 f-字符串的替代方法:%s和format()
- 8.4 非常有用的字符串方法
- 8.4.1 修改大小写
- 8.4.2 检查字符串的特征
- 8.4.3 检查字符串的开头和结尾部分
- 8.4.4 字符串合并和拆分
- 8.4.5 文本对齐和居中
- 8.4.6 删除空白
- 8.5 字符的数值码点
- 8.6 复制并粘贴字符串
- 8.7 项目2:在维基百科文章中添加项目符号
- 8.7.1 第1步:从剪贴板复制并粘贴
- 8.7.2 第2步:按行拆分文本
- 8.7.3 第3步:合并修改后的行
- 8.8 小程序9:儿童黑话
- 8.9 小结
- 第二部分 任务自动化
- 第9章 使用正则表达式匹配文本模式
- 9.1 在不使用正则表达式的情况下查找文本模式
- 9.2 使用正则表达式查找文本模式
- 9.3 正则表达式语法
- 9.3.1 使用括号进行分组
- 9.3.2 使用转义字符
- 9.3.3 匹配可替代编组
- 9.3.4 返回所有的匹配内容
- 9.4 修饰符语法:要匹配什么字符
- 9.4.1 使用字符集和反向字符集
- 9.4.2 使用简写字符集
- 9.4.3 使用句点字符匹配任何字符
- 9.4.4 注意要匹配的字符是否正确
- 9.5 量词语法:匹配多少个修饰符
- 9.5.1 匹配可选模式
- 9.5.2 匹配零个或多个修饰符
- 9.5.3 匹配一个或多个修饰符
- 9.5.4 匹配指定数量的修饰符
- 9.6 贪婪匹配和非贪婪匹配
- 9.6.1 匹配任何内容
- 9.6.2 匹配换行符
- 9.7 在字符串开头和末尾查找匹配的内容
- 9.8 匹配时不区分大小写
- 9.9 替换字符串
- 9.10 使用详细模式管理复杂的正则表达式
- 9.11 组合使用re.IGNORECASE、re.DOTALL和re.VERBOSE
- 9.12 项目3:从大型文档中提取联系人信息
- 9.12.1 第1步:创建用于匹配电话号码的正则表达式
- 9.12.2 第2步:创建用于匹配电子邮件地址的正则表达式
- 9.12.3 第3步:找出剪贴板文本中所有匹配的内容
- 9.12.4 第4步:将匹配的内容合并为单个字符串
- 9.12.5 文本模式识别的其他用途
- 9.13 Humre:一个用于提高正则表达式可读性的模块
- 9.14 小结
- 第10章 读写文件
- 10.1 文件和文件路径
- 10.1.1 标准化路径分隔符
- 10.1.2 合并路径
- 10.1.3 访问当前工作目录
- 10.1.4 访问主目录
- 10.1.5 指定绝对路径与相对路径
- 10.1.6 新建文件夹
- 10.1.7 处理绝对路径和相对路径
- 10.1.8 获取文件路径的组成部分
- 10.1.9 获取文件大小和时间戳
- 10.1.10 使用glob模式查找文件
- 10.1.11 检查路径是否有效
- 10.2 文件读写过程
- 10.2.1 打开文件
- 10.2.2 读取文件内容
- 10.2.3 写入文件
- 10.2.4 使用with语句
- 10.3 使用shelve模块保存变量
- 10.4 项目4:生成随机的考卷文件
- 10.4.1 第1步:将测验数据存储在字典中
- 10.4.2 第2步:创建用于存储测验数据的文件
- 10.4.3 第3步:创建选项
- 10.4.4 第4步:将内容写入文件
- 10.5 小结
- 第11章 组织文件
- 11.1 shutil模块
- 11.1.1 复制文件和文件夹
- 11.1.2 移动和重命名文件和文件夹
- 11.1.3 永久性删除文件和文件夹
- 11.1.4 移入回收站
- 11.2 遍历目录树
- 11.3 使用zipfile模块压缩文件
- 11.3.1 创建和添加到ZIP文件
- 11.3.2 读取ZIP文件
- 11.3.3 解压缩ZIP文件
- 11.4 项目5:将文件夹备份到ZIP文件中
- 11.4.1 第1步:确定ZIP文件的名称
- 11.4.2 第2步:新建ZIP文件
- 11.4.3 第3步:遍历目录树
- 11.4.4 使用同样的技巧编写类似程序
- 11.5 小结
- 第12章 设计并部署命令行程序
- 12.1 程序的别名
- 12.2 使用终端
- 12.2.1 命令cd、pwd、dir和ls
- 12.2.2 环境变量PATH
- 12.2.3 编辑环境变量PATH
- 12.2.4 命令which和where
- 12.3 虚拟环境
- 12.4 使用pip安装Python包
- 12.5 有自我认知的Python程序
- 12.6 基于文本的程序设计
- 12.6.1 简短的命令名
- 12.6.2 命令行参数
- 12.6.3 剪贴板I/O
- 12.6.4 使用Bext显示五颜六色的文本
- 12.6.5 清空终端窗口
- 12.6.6 声音和文本通知
- 12.7 小程序10:暴风雪
- 12.8 使用PyMsgBox弹出消息框
- 12.9 部署Python程序
- 12.9.1 Windows
- 12.9.2 macOS
- 12.9.3 Ubuntu Linux
- 12.10 小程序11:复制当前工作目录
- 12.10.1 Windows
- 12.10.2 macOS
- 12.10.3 Ubuntu Linux
- 12.11 小程序12:剪贴板记录程序
- 12.11.1 Windows
- 12.11.2 macOS
- 12.11.3 Ubuntu Linux
- 12.12 使用PyInstaller编译Python程序
- 12.13 小结
- 第13章 Web内容爬取
- 13.1 HTTP和HTTPS
- 13.2 项目6:使用webbrowser模块运行程序
- 13.2.1 第1步:确定URL
- 13.2.2 第2步:处理命令行参数
- 13.2.3 第3步:获取剪贴板中的内容
- 13.2.4 使用webbrowser模块编写类似程序
- 13.3 使用requests模块下载网络文件
- 13.3.1 下载网页
- 13.3.2 检查错误
- 13.3.3 将下载的文件保存到硬盘
- 13.4 访问天气API
- 13.4.1 城市搜索
- 13.4.2 获取当前天气
- 13.4.3 获取天气预报
- 13.4.4 探索 API
- 13.5 理解 HTML
- 13.5.1 探索HTML格式
- 13.5.2 查看网页的源代码
- 13.5.3 打开浏览器的开发者工具
- 13.5.4 查找HTML元素
- 13.6 使用Beautiful Soup解析HTML
- 13.6.1 创建Beautiful Soup对象
- 13.6.2 查找元素
- 13.6.3 获取元素属性中的数据
- 13.7 项目7:打开所有搜索结果
- 13.7.1 第1步:获取搜索结果页面
- 13.7.2 第2步:查找所有搜索结果
- 13.7.3 第3步:在不同的浏览器选项卡中打开每个搜索结果
- 13.7.4 使用同样的技巧编写类似程序
- 13.8 项目8:下载XKCD漫画
- 13.8.1 第1步:设计程序
- 13.8.2 第2步:下载网页
- 13.8.3 第3步:找到并下载漫画图像
- 13.8.4 第4步:保存图像并找到上一张漫画
- 13.8.5 用同样的技巧编写类似程序
- 13.9 使用Selenium控制浏览器
- 13.9.1 启动Selenium控制的浏览器
- 13.9.2 单击浏览器中的按钮
- 13.9.3 查找页面上的元素
- 13.9.4 单击页面上的元素
- 13.9.5 填写并提交表单
- 13.9.6 发送特殊键
- 13.10 使用Playwright控制浏览器
- 13.10.1 启动Playwright控制的浏览器
- 13.10.2 单击浏览器中的按钮
- 13.10.3 查找页面上的元素
- 13.10.4 单击页面上的元素
- 13.10.5 填写并提交表单
- 13.10.6 发送特殊键
- 13.11 小结
- 第14章 Excel电子表格
- 14.1 读取Excel文件
- 14.1.1 打开工作簿
- 14.1.2 获取工作簿中的工作表
- 14.1.3 获取工作表中的单元格
- 14.1.4 在列的字母编号和数字编号之间进行转换
- 14.1.5 获取行和列
- 14.2 项目9:收集人口普查统计数据
- 14.2.1 第1步:读取电子表格数据
- 14.2.2 第2步:填充数据结构
- 14.2.3 第3步:将结果写入文件
- 14.2.4 使用同样的技巧编写类似程序
- 14.3 写入Excel文件
- 14.3.1 创建并保存Excel文件
- 14.3.2 创建和删除工作表
- 14.3.3 在单元格中写入值
- 14.4 项目10:更新电子表格
- 14.4.1 第1步:设计用于存储正确价格信息的数据结构
- 14.4.2 第2步:检查所有行并更正错误价格
- 14.4.3 使用同样的技巧编写类似程序
- 14.5 设置单元格的字体样式
- 14.6 公式
- 14.7 调整行和列
- 14.7.1 设置行高和列宽
- 14.7.2 合并和拆分单元格
- 14.7.3 冻结窗格
- 14.8 图表
- 14.9 小结
- 第15章 Google Sheets
- 15.1 准备工作
- 15.1.1 新建一个Google Cloud项目
- 15.1.2 启用Google Sheets API和Google Drive API
- 15.1.3 配置OAuth许可界面
- 15.1.4 创建凭证
- 15.1.5 使用凭证文件登录
- 15.1.6 撤销凭证文件
- 15.2 Spreadsheet对象
- 15.2.1 创建、上传和列出电子表格
- 15.2.2 访问电子表格的属性
- 15.2.3 下载和上传电子表格
- 15.2.4 删除电子表格
- 15.3 Sheet对象
- 15.3.1 读写数据
- 15.3.2 创建、移动和删除工作表
- 15.3.3 复制工作表
- 15.4 Google Forms
- 15.5 项目11:虚构的区块链加密货币骗局
- 15.5.1 第1步:审计区块链
- 15.5.2 第2步:实施交易
- 15.6 Google Sheets配额
- 15.7 小结
- 第16章 SQLite数据库
- 16.1 比较电子表格和数据库
- 16.2 比较SQLite和其他SQL数据库
- 16.3 创建数据库和表
- 16.3.1 连接到数据库
- 16.3.2 创建表
- 16.3.3 定义数据类型
- 16.3.4 列出表和列
- 16.4 数据库操作CRUD
- 16.4.1 在数据库中插入数据
- 16.4.2 从数据库中读取数据
- 16.4.3 更新数据库中的数据
- 16.4.4 删除数据库中的数据
- 16.5 回滚事务
- 16.6 备份数据库
- 16.7 修改和删除表
- 16.8 使用外键连接多个表
- 16.9 内存数据库及其备份
- 16.10 复制数据库
- 16.11 SQLite命令行工具
- 16.12 小结
- 第17章 PDF文档和Word文档
- 17.1 PDF文档
- 17.1.1 提取文本
- 17.1.2 使用AI做后期处理
- 17.1.3 提取图像
- 17.1.4 使用既有PDF页面创建PDF文档
- 17.2 项目12:将众多PDF文档中的部分页面合并为单个PDF文档
- 17.2.1 第1步:找出所有的PDF文件
- 17.2.2 第2步:打开每个PDF文件
- 17.2.3 第3步:保存结果
- 17.2.4 使用同样的技巧编写类似程序
- 17.3 Word文档
- 17.3.1 读取Word文档
- 17.3.2 获取.docx文件中的所有文本
- 17.3.3 设置Paragraph和Run对象的样式
- 17.3.4 设置Run对象的属性
- 17.3.5 写入Word文档
- 17.3.6 添加标题
- 17.3.7 添加软换行符和换页符
- 17.3.8 添加图片
- 17.4 小结
- 第18章 CSV、JSON和XML文件
- 18.1 CSV格式
- 18.1.1 读取CSV文件
- 18.1.2 使用for循环访问数据
- 18.1.3 写入CSV文件
- 18.1.4 将制表符(而不是逗号)用作分隔符
- 18.1.5 处理标题行
- 18.2 项目13:删除CSV文件中的标题行
- 18.2.1 第1步:遍历每个文件
- 18.2.2 第2步:读取文件
- 18.2.3 第3步:写入新的CSV文件
- 18.2.4 使用同样的技巧编写类似程序
- 18.3 用途广泛的纯文本格式
- 18.3.1 JSON
- 18.3.2 XML
- 18.4 小结
- 第19章 记录时间、调度任务和启动程序
- 19.1 time模块
- 19.1.1 返回UNIX纪元时间戳
- 19.1.2 让程序暂停
- 19.2 项目14:超级秒表
- 19.2.1 第1步:为计时做准备
- 19.2.2 第2步:记录并显示每个阶段的时长
- 19.2.3 使用同样的技巧编写类似程序
- 19.3 datetime模块
- 19.3.1 表示时间段
- 19.3.2 暂停到特定日期
- 19.3.3 将datetime对象转换为字符串
- 19.3.4 将字符串转换为datetime对象
- 19.4 在Python程序中启动其他程序
- 19.4.1 向进程传递命令行参数
- 19.4.2 接收来自外部命令的文本输出
- 19.4.3 运行任务调度器、launchd和cron
- 19.4.4 使用默认应用程序打开文件
- 19.5 项目15:简单的倒计时程序
- 19.5.1 第1步:倒计时
- 19.5.2 第2步:播放音频文件
- 19.5.3 使用同样的技巧编写类似程序
- 19.6 小结
- 第20章 发送电子邮件、短信和通知
- 20.1 Gmail API
- 20.1.1 启用Gmail API
- 20.1.2 发送邮件
- 20.1.3 读取邮件
- 20.1.4 搜索邮件
- 20.1.5 下载附件
- 20.2 SMS Email网关
- 20.3 通知
- 20.3.1 发送通知
- 20.3.2 传输元数据
- 20.3.3 接收通知
- 20.4 小结
- 第21章 绘制图形和操作图像
- 21.1 计算机图像基础
- 21.1.1 颜色和RGBA值
- 21.1.2 坐标和矩形元组
- 21.2 使用Pillow操作图像
- 21.2.1 使用数据类型Image
- 21.2.2 裁剪图像
- 21.2.3 将图像粘贴到其他图像中
- 21.2.4 调整图像大小
- 21.2.5 旋转和翻转图像
- 21.2.6 修改像素
- 21.3 项目16:添加徽标
- 21.3.1 第1步:载入徽标图像
- 21.3.2 第2步:遍历所有的文件
- 21.3.3 第3步:调整图像大小
- 21.3.4 第4步:添加徽标并保存所做的修改
- 21.3.5 使用同样的技巧编写类似程序
- 21.4 在图像上绘画
- 21.4.1 形状
- 21.4.2 文本
- 21.5 使用剪贴板复制并粘贴图像
- 21.6 使用Matplotlib绘图
- 21.6.1 折线图和散点图
- 21.6.2 条形图和饼图
- 21.6.3 其他图表元素
- 21.7 小结
- 第22章 识别图像中的文本
- 22.1 安装Tesseract和PyTesseract
- 22.1.1 Windows
- 22.1.2 macOS
- 22.1.3 Linux
- 22.1.4 安装PyTesseract
- 22.2 OCR基础知识
- 22.2.1 预处理图像
- 22.2.2 使用大语言模型更正错误
- 22.3 识别非英语文本
- 22.4 扫描器应用程序NAPS2
- 22.4.1 安装并设置NAPS2
- 22.4.2 在Python程序中运行NAPS2
- 22.4.3 指定输入
- 22.5 小结
- 第23章 控制键盘和鼠标
- 23.1 在macOS系统中将程序设置为无障碍的
- 23.2 从故障中恢复
- 23.2.1 暂停和故障恢复措施
- 23.2.2 注销
- 23.3 控制鼠标移动
- 23.3.1 移动鼠标
- 23.3.2 获取鼠标的当前位置
- 23.4 控制鼠标交互
- 23.4.1 单击
- 23.4.2 拖曳
- 23.4.3 滚动
- 23.5 规划鼠标移动
- 23.6 截屏
- 23.7 图像识别
- 23.8 获取窗口信息
- 23.8.1 获取活动窗口
- 23.8.2 使用其他函数查找窗口
- 23.8.3 操作窗口
- 23.9 控制键盘
- 23.9.1 模拟按键操作
- 23.9.2 指定键名
- 23.9.3 按下和松开键盘键
- 23.9.4 模拟按快捷键
- 23.10 GUI自动化脚本编写小贴士
- 23.11 显示消息框
- 23.12 小结
- 第24章 文本转语音引擎和语音识别引擎
- 24.1 文本转语音引擎
- 24.1.1 生成语音
- 24.1.2 将语音保存为WAV文件
- 24.2 语音识别
- 24.3 创建字幕文件
- 24.4 从网站下载视频
- 24.5 小结
- 附录 安装第三方包
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。
