《Python程序设计与算法基础教程》是由清华大学出版社出版的一本关于Python编程方面的书籍,作者是江红、余青松,主要介绍了关于Python、程序设计、算法、基础教程方面的知识内容,目前在Python编程类书籍综合评分为:7.7分。
书籍介绍
《Python程序设计与算法基础教程》集教材内容、教辅书、上机操作具体指导于一体化,根据Windows 10和Python 3.7搭建Python平台,根据很多的案例,循序渐进、由浅入深地论述Python語言的基本知识,及其应用Python語言的具体开发设计运用案例。700好几个案例,431道复习题,563个实践活动新项目案例,37个综合性案例
这书集教材内容、教辅书、上机操作具体指导于一体化,根据Windows 10和Python 3.7搭建Python平台,论述Python語言的基本知识,及其应用Python語言的开发设计运用案例,主要内容包含Python简述,Python語言基本,操作流程操纵,常见内嵌数据类型,编码序列数据类型,键入和輸出,不正确和异常处理,涵数、类和对象,控制模块和手机客户端,优化算法与数据结构基本,图形用户界面,图型绘图,标值时间和時间解决,字符数组和文本处理,文档、数据库查询浏览,互联网和Web程序编写,多线程编程及其管理信息系统等。 这书小编融合很多年的编程设计、系统软件开发及其讲课工作经验,循序渐进、由浅入深地详细介绍Python编程语言,让用户可以比较系统软件、全方位地把握编程设计的基础理论和运用。这书还出示了课堂教学微课视频。 这书能够做为高等院校各技术专业的蜘蛛机器人设计教程,也可做为众多编程设计开发人员、发烧友的通过自学教材。
目录
- 第1章Python概述
- 1.1初识Python语言
- 1.1.1Python语言简介
- 1.1.2Python语言的特点
- 1.1.3Python语言的应用范围
- 1.2Python语言版本和开发环境
- 1.2.1Python语言的版本
- 1.2.2Python语言的实现
- 1.2.3Python语言的集成开发环境
- 1.3下载和安装Python
- 1.3.1下载Python
- 1.3.2安装Python
- 1.3.3安装和管理Python扩展包
- 1.4使用Python解释器解释执行Python程序
- 1.4.1运行Python解释器
- 1.4.2运行Python集成开发环境
- 1.5使用文本编辑器和命令行编写和执行Python源文件程序
- 1.5.1编写输出“Hello,World!”的程序
- 1.5.2输出“Hello,World!”程序的源代码分析
- 1.5.3运行Python源代码程序
- 1.5.4命令行参数
- 1.6使用集成开发环境IDLE编写和执行Python源文件程序
- 1.6.1使用IDLE编写程序
- 1.6.2使用IDLE编辑程序
- 1.7在线帮助和相关资源
- 1.7.1Python交互式帮助系统
- 1.7.2Python文档
- 1.7.3Python官网
- 1.7.4Python扩展库索引
- 1.8复习题
- 1.9上机实践
- 1.10案例研究: 安装和使用其他Python环境
- 第2章Python语言基础
- 2.1Python程序概述
- 2.1.1引例
- 2.1.2Python程序的构成
- 2.2Python对象和引用
- 2.2.1Python对象概述
- 2.2.2使用字面量创建实例对象
- 2.2.3使用类对象创建实例对象
- 2.2.4数据类型
- 2.2.5变量和对象的引用
- 2.2.6Python是动态类型语言
- 2.2.7Python是强类型语言
- 2.2.8对象内存示意图
- 2.2.9对象的值比较和引用判别
- 2.2.10不可变对象和可变对象
- 2.3标识符及其命名规则
- 2.3.1标识符
- 2.3.2保留关键字
- 2.3.3Python预定义标识符
- 2.3.4命名规则
- 2.4变量和赋值语句
- 2.4.1变量的声明和赋值
- 2.4.2链式赋值语句
- 2.4.3复合赋值语句
- 2.4.4删除变量
- 2.4.5序列解包赋值
- 2.4.6常量
- 2.5表达式和运算符
- 2.5.1表达式的组成
- 2.5.2表达式的书写规则
- 2.5.3运算符概述
- 2.5.4Python运算符
- 2.6语句
- 2.6.1Python语句
- 2.6.2Python语句的书写规则
- 2.6.3复合语句及其缩进书写规则
- 2.6.4注释语句
- 2.6.5空语句
- 2.7函数和模块
- 2.7.1函数的创建和调用
- 2.7.2内置函数
- 2.7.3模块函数
- 2.7.4函数API
- 2.8类和对象
- 2.8.1创建类对象
- 2.8.2实例对象的创建和调用
- 2.9模块和包
- 2.10复习题
- 2.11上机实践
- 2.12案例研究: 使用Pillow库处理图像文件
- 第3章程序流程控制
- 3.1顺序结构
- 3.2选择结构
- 3.2.1分支结构的形式
- 3.2.2单分支结构
- 3.2.3双分支结构
- 3.2.4多分支结构
- 3.2.5if语句的嵌套
- 3.2.6if语句的典型示例代码
- 3.2.7选择结构综合举例
- 3.3循环结构
- 3.3.1可迭代对象
- 3.3.2range对象
- 3.3.3for循环
- 3.3.4while循环
- 3.3.5循环的嵌套
- 3.3.6break语句
- 3.3.7continue语句
- 3.3.8死循环
- 3.3.9else子句
- 3.3.10enumerate()函数和循环
- 3.3.11zip()函数和循环
- 3.3.12map()函数和循环
- 3.3.13循环语句的典型示例代码
- 3.3.14循环结构综合举例
- 3.4复习题
- 3.5上机实践
- 3.6案例研究: 使用嵌套循环实现图像处理算法
- 第4章常用内置数据类型
- 4.1Python内置数据类型概述
- 4.1.1数值数据类型
- 4.1.2序列数据类型
- 4.1.3集合数据类型
- 4.1.4字典数据类型
- 4.1.5NoneType、NotImplementedType和EllipsisType
- 4.1.6其他数据类型
- 4.2int类型
- 4.2.1整型字面量
- 4.2.2int对象
- 4.2.3int对象的方法
- 4.2.4整数的运算
- 4.3float类型
- 4.3.1浮点类型字面量
- 4.3.2float对象
- 4.3.3float对象的方法
- 4.3.4浮点数的运算
- 4.4complex类型
- 4.4.1复数类型字面量
- 4.4.2complex对象
- 4.4.3complex对象的属性和方法
- 4.4.4复数的运算
- 4.5bool类型
- 4.5.1布尔值字面量
- 4.5.2bool对象
- 4.5.3逻辑运算符
- 4.6str类型
- 4.6.1字符串字面量
- 4.6.2字符串编码
- 4.6.3转义字符
- 4.6.4str对象
- 4.6.5str对象的属性和方法
- 4.6.6字符串的运算
- 4.6.7对象转换为字符串
- 4.6.8字符串的格式化
- 4.6.9格式化字符串变量
- 4.7比较关系运算和条件表达式
- 4.7.1条件表达式
- 4.7.2关系和测试运算符
- 4.8算术运算符和位运算符
- 4.8.1算术运算符
- 4.8.2位运算符
- 4.9混合运算和数值类型转换
- 4.9.1隐式转换
- 4.9.2显式转换
- 4.10内置标准数学函数
- 4.10.1内置数学运算函数
- 4.10.2数制转换函数
- 4.11复习题
- 4.12上机实践
- 4.13案例研究: 科学计算和数据分析
- 第5章序列数据类型
- 5.1Python序列数据概述
- 5.1.1数组
- 5.1.2Python内置的序列数据类型
- 5.2序列数据的基本操作
- 5.2.1序列的长度、最大值、最小值、求和
- 5.2.2序列的索引访问操作
- 5.2.3序列的切片操作
- 5.2.4序列的连接和重复操作
- 5.2.5序列的成员关系操作
- 5.2.6序列的比较运算操作
- 5.2.7序列的排序操作
- 5.2.8内置函数all()和any()
- 5.2.9序列的拆分
- 5.3元组
- 5.3.1使用元组字面量创建元组实例对象
- 5.3.2使用tuple对象创建元组实例对象
- 5.3.3元组的序列操作
- 5.4列表
- 5.4.1使用列表字面量创建列表实例对象
- 5.4.2使用list对象创建列表实例对象
- 5.4.3列表的序列操作
- 5.4.4list对象的方法
- 5.4.5列表解析表达式
- 5.5字符串
- 5.5.1字符串的序列操作
- 5.5.2字符串编码
- 5.5.3字符串的格式化
- 5.6字节序列
- 5.6.1bytes常量
- 5.6.2创建bytes对象
- 5.6.3创建bytearray对象
- 5.6.4bytes和bytearray的序列操作
- 5.6.5字节编码和解码
- 5.7复习题
- 5.8上机实践
- 5.9案例研究: 猜单词游戏
- 第6章输入和输出
- 6.1输入和输出概述
- 6.2命令行参数
- 6.2.1sys.argv与命令行参数
- 6.2.2argparse模块和命令行参数解析
- 6.3标准输入和标准输出函数
- 6.3.1输入和输出函数
- 6.3.2交互式用户输入
- 6.3.3运行时提示输入密码
- 6.4文件和文件对象
- 6.4.1文件对象和open()函数
- 6.4.2文件的打开、写入、读取和关闭
- 6.4.3with语句和上下文管理协议
- 6.5标准输入、输出和错误流
- 6.5.1标准输入、输出和错误流文件对象
- 6.5.2读取任意长度的输入流
- 6.5.3标准输入、输出和错误流重定向
- 6.6重定向和管道
- 6.6.1重定向标准输出到一个文件
- 6.6.2重定向文件到标准输入
- 6.6.3管道
- 6.6.4过滤器
- 6.7复习题
- 6.8上机实践
- 6.9案例研究: 21点扑克牌游戏
- 第7章错误和异常处理
- 7.1程序的错误
- 7.1.1语法错误
- 7.1.2运行时错误
- 7.1.3逻辑错误
- 7.2异常处理
- 7.2.1异常处理概述
- 7.2.2内置的异常类
- 7.2.3引发异常
- 7.2.4捕获处理异常机制概述
- 7.2.5Python虚拟机捕获处理异常
- 7.2.6使用try…except…else…finally语句捕获处理异常
- 7.2.7捕获异常的顺序
- 7.2.8finally块和发生异常后的处理
- 7.2.9自定义异常类
- 7.3断言处理
- 7.3.1断言处理概述
- 7.3.2assert语句和AssertionError类
- 7.3.3启用/禁用断言
- 7.4程序的基本调试方法
- 7.4.1语法错误的调试
- 7.4.2运行时错误的调试
- 7.4.3逻辑错误的调试
- 7.5使用logging模块输入日志
- 7.5.1logging模块概述
- 7.5.2logging的配置和使用
- 7.6复习题
- 7.7上机实践
- 7.8案例研究: 使用调试器调试Python程序
- 第8章函数和函数式编程
- 8.1函数概述
- 8.1.1函数的基本概念
- 8.1.2函数的功能
- 8.1.3Python中函数的分类
- 8.2函数的声明和调用
- 8.2.1函数对象的创建
- 8.2.2函数的调用
- 8.2.3函数的副作用
- 8.3参数的传递
- 8.3.1形式参数和实际参数
- 8.3.2形式参数变量和对象引用传递
- 8.3.3传递不可变对象的引用
- 8.3.4传递可变对象的引用
- 8.3.5可选参数
- 8.3.6位置参数和命名参数
- 8.3.7可变参数
- 8.3.8强制命名参数
- 8.3.9参数类型检查
- 8.4函数的返回值
- 8.4.1return语句和函数返回值
- 8.4.2多条return语句
- 8.4.3返回多个值
- 8.5变量的作用域
- 8.5.1全局变量
- 8.5.2局部变量
- 8.5.3全局语句global
- 8.5.4非局部语句nonlocal
- 8.5.5类成员变量
- 8.5.6输出局部变量和全局变量
- 8.6递归函数
- 8.6.1递归函数的定义
- 8.6.2递归函数的原理
- 8.6.3编写递归函数时需要注意的问题
- 8.6.4递归函数的应用: 最大公约数
- 8.6.5递归函数的应用: 汉诺塔
- 8.7内置函数的使用
- 8.7.1内置函数一览
- 8.7.2eval()函数
- 8.7.3exec()函数
- 8.7.4compile()函数
- 8.8Python函数式编程基础
- 8.8.1作为对象的函数
- 8.8.2高阶函数
- 8.8.3map()函数
- 8.8.4filter()函数
- 8.8.5Lambda表达式和匿名函数
- 8.8.6operator模块和操作符函数
- 8.8.7functools.reduce()函数
- 8.8.8偏函数
- 8.8.9sorted()函数
- 8.8.10函数装饰器
- 8.9复习题
- 8.10上机实践
- 8.11案例研究: 井字棋游戏
- 第9章面向对象的程序设计
- 9.1面向对象概念
- 9.1.1对象的定义
- 9.1.2封装
- 9.1.3继承
- 9.1.4多态性
- 9.2类对象和实例对象
- 9.2.1类对象
- 9.2.2实例对象
- 9.3属性
- 9.3.1实例对象属性
- 9.3.2类对象属性
- 9.3.3私有属性和公有属性
- 9.3.4@property装饰器
- 9.3.5特殊属性
- 9.3.6自定义属性
- 9.4方法
- 9.4.1对象实例方法
- 9.4.2静态方法
- 9.4.3类方法
- 9.4.4__init__()方法和__new__()方法
- 9.4.5__del__()方法
- 9.4.6私有方法与公有方法
- 9.4.7方法的重载
- 9.5继承
- 9.5.1派生类
- 9.5.2查看继承的层次关系
- 9.5.3类成员的继承和重写
- 9.6对象的特殊方法
- 9.6.1对象的特殊方法概述
- 9.6.2运算符重载与对象的特殊方法
- 9.6.3@functools.total_ordering装饰器
- 9.6.4__call__()方法和可调用对象
- 9.7对象的引用、浅拷贝和深拷贝
- 9.7.1对象的引用
- 9.7.2对象的浅拷贝
- 9.7.3对象的深拷贝
- 9.8可迭代对象: 迭代器和生成器
- 9.8.1可迭代对象
- 9.8.2迭代器
- 9.8.3迭代器协议
- 9.8.4可迭代对象的迭代: iter()函数和next()函数
- 9.8.5可迭代对象的迭代: for语句
- 9.8.6自定义可迭代对象和迭代器
- 9.8.7生成器函数
- 9.8.8反向迭代: reversed迭代器
- 9.8.9生成器表达式
- 9.8.10range可迭代对象
- 9.8.11map迭代器和itertools.starmap迭代器
- 9.8.12filter迭代器和itertools.filterfalse迭代器
- 9.8.13zip迭代器和itertools.zip_longest迭代器
- 9.8.14enumerate迭代器
- 9.8.15无穷序列迭代器itertools.count、cycle和repeat
- 9.8.16累计迭代器itertools.accumulate
- 9.8.17级联迭代器itertools.chain
- 9.8.18选择压缩迭代器itertools.compress
- 9.8.19截取迭代器itertools.dropwhile和takewhile
- 9.8.20切片迭代器itertools.islice
- 9.8.21分组迭代器itertools.groupby
- 9.8.22返回多个迭代器itertools.tee
- 9.8.23组合迭代器itertools.combinations和combinations_with_replacement
- 9.8.24排列迭代器itertools.permutations
- 9.8.25笛卡儿积迭代器itertools.product
- 9.9自定义类应用举例
- 9.9.1Color类
- 9.9.2Histogram类
- 9.10复习题
- 9.11上机实践
- 9.12案例研究: 文本相似度比较分析
- 第10章模块和客户端
- 10.1模块化程序设计的概念
- 10.1.1模块化程序设计
- 10.1.2模块的API
- 10.1.3模块的实现
- 10.1.4模块的客户端
- 10.1.5模块化程序设计的优越性
- 10.2模块的设计和实现
- 10.2.1模块设计的一般原则
- 10.2.2API设计
- 10.2.3创建模块
- 10.2.4模块的私有函数
- 10.2.5模块的测试代码
- 10.2.6编写模块文档字符串
- 10.2.7按字节编译的.pyc文件
- 10.3模块的导入和使用
- 10.3.1导入模块和使用模块
- 10.3.2导入模块中的成员
- 10.3.3重新加载模块
- 10.3.4动态导入模块
- 10.4包
- 10.4.1包的概念
- 10.4.2创建包
- 10.4.3包的导入和使用
- 10.5模块的导入顺序
- 10.5.1导入模块时的搜索顺序
- 10.5.2模块搜索路径
- 10.5.3dir()函数
- 10.6名称空间与名称查找顺序
- 10.6.1名称空间概述
- 10.6.2名称查找顺序
- 10.6.3顶层模块和__name__变量
- 10.6.4Python解释器
- 10.6.5全局名称空间
- 10.6.6局部名称空间
- 10.6.7类和对象名称空间
- 10.7复习题
- 10.8上机实践
- 10.9案例研究: 基于模块的库存管理系统
- 第11章算法与数据结构基础
- 11.1算法及其性能分析
- 11.1.1算法概述
- 11.1.2算法的时间复杂度分析
- 11.1.3增长量级
- 11.1.4算法的空间复杂度分析
- 11.2查找算法
- 11.2.1顺序查找法
- 11.2.2二分查找法
- 11.2.3Python语言提供的查找算法
- 11.3排序算法
- 11.3.1冒泡排序法
- 11.3.2选择排序法
- 11.3.3插入排序法
- 11.3.4归并排序法
- 11.3.5快速排序法
- 11.3.6Python语言提供的排序算法
- 11.4常用数据结构
- 11.4.1数据结构概述
- 11.4.2常用数据结构概述
- 11.4.3Python中的collections模块
- 11.5数组
- 11.5.1列表和数组
- 11.5.2array.array对象和数组
- 11.6栈和队列
- 11.6.1栈的实现: 使用列表
- 11.6.2deque对象
- 11.6.3deque作为栈
- 11.6.4deque作为队列
- 11.7集合
- 11.7.1集合的定义
- 11.7.2集合解析表达式
- 11.7.3判断集合元素是否存在
- 11.7.4集合的运算: 并集、交集、差集和对称差集
- 11.7.5集合的比较运算: 相等、子集和超集
- 11.7.6集合的长度、最大值、最小值、元素和
- 11.7.7可变集合的方法
- 11.8字典
- 11.8.1对象的哈希值
- 11.8.2字典的定义
- 11.8.3字典的访问操作
- 11.8.4字典的视图对象
- 11.8.5字典的遍历
- 11.8.6字典解析表达式
- 11.8.7判断字典键是否存在
- 11.8.8字典对象的长度和比较
- 11.8.9字典对象的方法
- 11.8.10defaultdict对象
- 11.8.11OrderedDict对象
- 11.8.12ChainMap对象
- 11.8.13Counter对象
- 11.9collections模块的其他数据结构
- 11.9.1namedtuple对象
- 11.9.2UserDict、UserList和UserString对象
- 11.10应用举例
- 11.10.1去除列表中的重复项
- 11.10.2基于字典的通讯录
- 11.11复习题
- 11.12上机实践
- 11.13案例研究: 程序运行时间度量分析
- 第12章图形用户界面
- 12.1图形用户界面概述
- 12.1.1tkinter
- 12.1.2其他GUI库简介
- 12.2tkinter概述
- 12.2.1tkinter模块
- 12.2.2图形用户界面的构成
- 12.2.3框架和GUI应用程序类
- 12.2.4tkinter主窗口
- 12.3几何布局管理器
- 12.3.1pack几何布局管理器
- 12.3.2grid几何布局管理器
- 12.3.3place几何布局管理器
- 12.4事件处理
- 12.4.1事件类型
- 12.4.2事件绑定
- 12.4.3事件处理函数
- 12.5常用组件
- 12.5.1Label
- 12.5.2LabelFrame
- 12.5.3Button
- 12.5.4Message
- 12.5.5Entry
- 12.5.6Text
- 12.5.7Radiobutton
- 12.5.8Checkbutton
- 12.5.9Listbox
- 12.5.10OptionMenu
- 12.5.11Scale
- 12.5.12Toplevel
- 12.5.13ttk子模块控件
- 12.6对话框
- 12.6.1通用消息对话框
- 12.6.2文件对话框
- 12.6.3颜色选择对话框
- 12.6.4通用对话框应用举例
- 12.6.5简单对话框
- 12.7菜单和工具栏
- 12.7.1创建主菜单
- 12.7.2创建上下文菜单
- 12.7.3菜单应用举例
- 12.8基于wxPython的图形用户界面设计入门
- 12.8.1wxPython概述
- 12.8.2安装wxPython库
- 12.8.3wxPython应用程序的基本架构
- 12.8.4使用wxPython开发简易文本编辑器
- 12.9复习题
- 12.10上机实践
- 12.11案例研究: 简易图形用户界面计算器
- 第13章图形绘制
- 13.1Python绘图模块概述
- 13.2基于tkinter的图形绘制
- 13.2.1基于tkinter的画布绘图概述
- 13.2.2创建画布对象
- 13.2.3绘制矩形
- 13.2.4绘制椭圆
- 13.2.5绘制圆弧
- 13.2.6绘制线条
- 13.2.7绘制多边形
- 13.2.8绘制字符串
- 13.2.9应用举例: 绘制函数图形
- 13.3基于turtle模块的海龟绘图
- 13.3.1海龟绘图概述
- 13.3.2turtle模块概述
- 13.3.3绘制正方形
- 13.3.4绘制多边形
- 13.3.5绘制圆形螺旋
- 13.3.6递归图形
- 13.3.7海龟绘图的应用实例
- 13.4基于Matplotlib模块的绘图
- 13.4.1Matplotlib模块概述
- 13.4.2安装Matplotlib模块
- 13.4.3使用Matplotlib模块绘图概述
- 13.4.4绘制函数曲线
- 13.4.5绘制多个图形
- 13.4.6绘制直方图
- 13.5复习题
- 13.6上机实践
- 13.7案例研究: 汉诺塔问题求解动画
- 第14章数值日期和时间处理
- 14.1相关模块概述
- 14.1.1数值处理的相关模块
- 14.1.2日期和时间处理的相关模块
- 14.2math模块和数学函数
- 14.2.1math模块的API
- 14.2.2math模块应用举例
- 14.3cmath模块和复数数学函数
- 14.4random模块和随机函数
- 14.4.1种子和随机状态
- 14.4.2随机整数
- 14.4.3随机序列
- 14.5数值运算模块NumPy
- 14.5.1数值运算模块的基本使用
- 14.5.2创建数组
- 14.5.3处理数组
- 14.5.4数组应用举例
- 14.6日期和时间处理
- 14.6.1相关术语
- 14.6.2时间对象
- 14.6.3测量程序运行时间
- 14.6.4日期对象
- 14.6.5获取当前日期时间
- 14.6.6日期时间格式化为字符串
- 14.6.7日期时间字符串解析为日期时间对象
- 14.7应用举例
- 14.7.1蒙特卡洛模拟: 赌徒破产命运
- 14.7.2使用随机数估值圆周率
- 14.7.3程序运行时间测量
- 14.8复习题
- 14.9上机实践
- 14.10案例研究: 使用pandas进行数据分析和处理
- 第15章字符串和文本处理
- 15.1相关模块概述
- 15.1.1字符串和文本处理的相关模块
- 15.1.2字符串处理的常用方法
- 15.2字符串处理的常用操作
- 15.2.1字符串的类型判断
- 15.2.2字符串的大小写转换
- 15.2.3字符串的填充、空白和对齐
- 15.2.4字符串的测试、查找和替换
- 15.2.5字符串的拆分和组合
- 15.2.6字符串的翻译和转换
- 15.2.7字符串应用举例
- 15.3正则表达式
- 15.3.1正则表达式语言概述
- 15.3.2正则表达式引擎
- 15.3.3普通字符和转义字符
- 15.3.4字符类和预定义字符类
- 15.3.5边界匹配符
- 15.3.6重复限定符
- 15.3.7匹配算法: 贪婪和懒惰
- 15.3.8选择分支
- 15.3.9分组和向后引用
- 15.3.10正则表达式的匹配模式
- 15.3.11常用正则表达式
- 15.4正则表达式模块re
- 15.4.1匹配和搜索函数
- 15.4.2匹配选项
- 15.4.3正则表达式对象
- 15.4.4匹配对象
- 15.4.5匹配和替换
- 15.4.6分隔字符串
- 15.5正则表达式应用举例
- 15.5.1字符串包含验证
- 15.5.2字符串的查找和拆分
- 15.5.3字符串的替换和清除
- 15.5.4字符串的查找和截取
- 15.6应用举例
- 15.6.1文本统计
- 15.6.2基因预测
- 15.6.3字符串的简单加密和解密
- 15.7复习题
- 15.8上机实践
- 15.9案例研究: NLTK与自然语言处理
- 第16章文件和数据交换
- 16.1文件操作相关模块概述
- 16.2文本文件的读取和写入
- 16.2.1文本文件的写入
- 16.2.2文本文件的读取
- 16.2.3文本文件的编码
- 16.3二进制文件的读取和写入
- 16.3.1二进制文件的写入
- 16.3.2二进制文件的读取
- 16.4随机文件访问
- 16.5内存文件的操作
- 16.5.1StringIO和内存文本文件的操作
- 16.5.2BytesIO和内存二进制文件的操作
- 16.6文件的压缩和解压缩
- 16.7CSV格式文件的读取和写入
- 16.7.1csv.reader对象和CSV文件的读取
- 16.7.2csv.writer对象和CSV文件的写入
- 16.7.3csv.DictReader对象和CSV文件的读取
- 16.7.4csv.DictWriter对象和CSV文件的写入
- 16.7.5CSV文件格式化参数和Dialect对象
- 16.8输入重定向和管道
- 16.8.1FileInput对象
- 16.8.2fileinput模块的函数
- 16.8.3输入重定向
- 16.9对象序列化
- 16.9.1对象序列化概述
- 16.9.2pickle模块和对象序列化
- 16.9.3json模块和JSON格式数据
- 16.10复习题
- 16.11上机实践
- 16.12案例研究: 百度音乐批量下载器
- 第17章数据库访问
- 17.1数据库基础
- 17.1.1数据库的概念
- 17.1.2关系数据库
- 17.2Python数据库访问模块
- 17.2.1通用数据库访问模块
- 17.2.2专用数据库访问模块
- 17.2.3SQLite数据库和sqlite3模块
- 17.3使用sqlite3模块连接和操作SQLite数据库
- 17.3.1访问数据库的步骤
- 17.3.2创建数据库和表
- 17.3.3数据库表的插入、更新和删除操作
- 17.3.4数据库表的查询操作
- 17.4使用SQLiteStudio查看和维护SQLite数据库
- 17.5复习题
- 17.6上机实践
- 17.7案例研究: 基于数据库和GUI的教务管理系统
- 第18章网络编程和通信
- 18.1网络编程的基本概念
- 18.1.1网络基础知识
- 18.1.2TCP/IP协议简介
- 18.1.3IP地址和域名
- 18.1.4统一资源定位器
- 18.2基于socket的网络编程
- 18.2.1socket概述
- 18.2.2创建socket对象
- 18.2.3将服务器端socket绑定到指定地址
- 18.2.4服务器端socket开始侦听
- 18.2.5连接和接收连接
- 18.2.6发送和接收数据
- 18.2.7简单TCP程序: Echo Server
- 18.2.8简单UDP程序: Echo Server
- 18.2.9UDP程序: Quote Server
- 18.3基于urllib的网络编程
- 18.3.1打开和读取URL网络资源
- 18.3.2创建Request对象
- 18.4基于http的网络编程
- 18.5基于ftplib的网络编程
- 18.5.1创建FTP对象
- 18.5.2创建FTP_TLS对象
- 18.6基于poplib和smtplib的网络编程
- 18.6.1使用poplib接收邮件
- 18.6.2使用smtplib发送邮件
- 18.7复习题
- 18.8上机实践
- 18.9案例研究: 网络爬虫案例
- 第19章并行计算: 进程、线程和协程
- 19.1并行处理概述
- 19.1.1进程、线程和协程
- 19.1.2Python语言与并行处理相关模块
- 19.2基于线程的并发处理
- 19.2.1threading模块概述
- 19.2.2使用Thread对象创建线程
- 19.2.3自定义派生于Thread的对象
- 19.2.4线程加入
- 19.2.5用户线程和daemon线程
- 19.2.6Timer线程
- 19.2.7基于原语锁的简单同步
- 19.2.8基于条件变量的同步和通信
- 19.2.9基于queue模块中队列的同步
- 19.2.10基于Event的同步和通信
- 19.3基于进程的并行计算
- 19.3.1multiprocessing模块概述
- 19.3.2创建和使用进程
- 19.3.3进程的数据共享
- 19.3.4进程池
- 19.4基于线程池/进程池的并发和并行任务
- 19.4.1concurrent.futures模块概述
- 19.4.2使用ThreadPoolExecutor并发执行任务
- 19.4.3使用ProcessPoolExecutor并发执行任务
- 19.5基于asyncio的异步IO编程
- 19.5.1asyncio模块概述
- 19.5.2创建协程对象
- 19.5.3创建任务对象
- 19.6应用举例
- 19.6.1使用Pool并行计算查找素数
- 19.6.2使用ProcessPoolExecutor并行判断素数
- 19.6.3使用ThreadPoolExecutor多线程爬取网页
- 19.7复习题
- 19.8上机实践
- 19.9案例研究: 文本统计并行处理
- 第20章系统管理
- 20.1系统管理相关模块
- 20.2目录、文件和磁盘的基本操作
- 20.2.1创建目录
- 20.2.2临时目录和文件的创建
- 20.2.3切换和获取当前工作目录
- 20.2.4目录内容列表
- 20.2.5文件通配符和glob.glob()函数
- 20.2.6遍历目录和os.walk()函数
- 20.2.7判断文件/目录是否存在
- 20.2.8测试文件类型
- 20.2.9文件的日期及大小
- 20.2.10文件和目录的删除
- 20.2.11文件和目录的复制、重命名和移动
- 20.2.12磁盘的基本操作
- 20.3执行操作系统命令和运行其他程序
- 20.3.1os.system()函数
- 20.3.2os.popen()函数
- 20.3.3subprocess模块
- 20.4获取终端的大小
- 20.5文件的压缩和解压缩
- 20.5.1shutil模块支持的压缩和解压缩格式
- 20.5.2make_archive()函数和文件压缩
- 20.5.3unpack_archive()函数和文件解压缩
- 20.6configparser模块和配置文件
- 20.6.1INI文件及INI文件格式
- 20.6.2ConfigParser对象和INI文件操作
- 20.7应用举例
- 20.7.1病毒扫描
- 20.7.2文件目录树
- 20.8复习题
- 20.9上机实践
- 20.10案例研究: 简易图形用户界面压缩软件
- 参考文献