描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302524830丛书名: 21世纪高等学校计算机类课程创新规划教材·微课版
本书编者结合多年的程序设计、系统开发以及授课经验,由浅入深、循序渐进地介绍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案例研究: 简易图形用户界面压缩软件
参考文献
程序设计是大专院校计算机、电子信息、工商管理等相关专业的必修课程。Python语言是一种解释型、面向对象的计算机程序设计语言,广泛用于计算机程序设计教学语言、系统管理编程脚本语言、科学计算等,特别适用于快速的应用程序开发。Python编程语言广受开发者的喜爱,并被列入LAMP(Linux、Apache、MySQL以及Python/Perl/PHP),已经成为最受欢迎的程序设计语言之一。
本书集教材、练习册、上机指导于一体,基于Windows 10和Python 3.7构建Python开发平台,通过大量的实例由浅入深、循序渐进地阐述Python语言的基础知识,以及使用Python语言的开发应用实例,具体内容包括Python概述,Python语言基础,程序流程控制,常用内置数据类型,序列数据类型,输入和输出,错误和异常处理,函数、类和对象,模块和客户端,算法与数据结构基础,图形用户界面,图形绘制,数值日期和时间处理,字符串和文本处理,文件、数据库访问,网络和Web编程,多线程编程以及系统管理等。
本书是第1版的升级和完善。
在第1版的基础上,在每个章节中增加了“蒙特卡洛模拟: 赌徒破产命运”“基于字典的通信录”“使用随机数估值圆周率”“去除列表中的重复项生成器函数”“文本统计”“基因预测”“字符串加密和解密”“病毒扫描”“遍历并输出文件目录结构”等实用小案例。
本书的每个章节末还增加了“网络爬虫案例”“百度音乐批量下载器”“使用pandas进行数据分析和处理”“猜单词游戏”“井字棋(Tic Tac Toe)游戏”“21点扑克牌游戏”“简易图形用户界面计算器”“基于turtle的汉诺塔问题求解动画的设计和实现”“基于模块的库存管理系统”“基于数据库和GUI的教务管理系统”“文本相似度比较分析”“文本统计并行处理”“科学计算和数据分析”“使用嵌套循环实现图像处理算法”“NLTK与自然语言处理”等大的实用案例研究。实用案例研究作为本书的电子资源,采用二维码的方式印在书上,作为开源的补充阅读和学习资源,并且随着Python程序的需求和演变将不断增补和更新。
教程还提供教学微课视频,方便学生反复观看和学习课程相关内容,扫描书中的二维码,可以在线观看视频讲解。
为了更好地帮助读者理解和掌握知识点及应用技能,本书提供了700多个大大小小的实例、431道复习题(选择题、填空题和思考题)、563个实践操作任务、37个综合应用案例。本书配套的教学课件、教学大纲、电子教案、期末试卷、习题答案可以通过扫描封底课件二维码下载。
本书由华东师范大学江红和余青松共同编写,衷心感谢清华大学出版社的编辑,敬佩他们的睿智和敬业。由于时间和编者学识有限,书中不足之处在所难免,敬请诸位同行、专家和读者指正。
编者
2019年5月
视频讲解
在Python程序中,对于语句的执行有3种基本控制结构,即顺序结构、选择结构、循环结构。
3.1顺 序 结 构
图31顺序结构示意图
若程序中的语句按各语句出现位置的先后次序执行,称之为顺序结构,参见图31。在图31中先执行语句块1,再执行语句块2,最后执行语句块3,3个语句块之间是顺序执行关系。
【例3.1】顺序结构示例(area.py): 输入三角形3条边的边长(为简单起见,假设这3条边可以构成三角形),计算三角形的面积。提示: 三角形面积=h*(h-a)*(h-b)*(h-c),其中,a、b、c是三角形3条边的边长,h是三角形周长的一半。
import math
a = float(input(“请输入三角形的边长a:”))
b = float(input(“请输入三角形的边长b:”))
c = float(input(“请输入三角形的边长c:”))
h = (a b c) / 2#三角形周长的一半
area = math.sqrt(h*(h-a)*(h-b)*(h-c));#三角形面积
print(str.format(“三角形三边分别为:a={0},b={1},c={2}”, a, b, c))
print(str.format(“三角形的面积 = {0}”, area))
程序运行结果如下。
请输入三角形的边长a: 3
请输入三角形的边长b: 4
请输入三角形的边长c: 5
三角形三边分别为: a=3.0,b=4.0,c=5.0
三角形的面积 = 6.0
3.2选 择 结 构
选择结构可以根据条件来控制代码的执行分支,也叫分支结构。Python使用if语句来实现分支结构。
3.2.1分支结构的形式
分支结构包含单分支、双分支和多分支等形式,流程如图32(a)~(c)所示。
图32if语句的选择结构
评论
还没有评论。