目录 第1章引言 1.1Python语言历史 1.2Python语言设计哲学——Python之禅 1.3Python语言特点 1.4Python语言应用前景 第2章准备开发环境 2.1安装Python解释器 2.2PyCharm开发工具 2.2.1下载和安装 2.2.2设置Python解释器 2.3文本编辑工具 2.4本章小结 2.5上机实验 第3章编写第1个Python程序 3.1使用Python Shell 3.2使用PyCharm实现 3.2.1创建项目 3.2.2创建Python代码文件 3.2.3编写代码 3.2.4运行程序 3.3文本编辑工具+Python解释器实现 3.3.1编写代码 3.3.2运行程序 3.4代码解释 3.5本章小结 第4章Python语法基础 4.1标识符和关键字 4.1.1标识符 4.1.2关键字 4.2变量和常量 4.2.1变量 4.2.2常量 4.3注释 4.4语句 4.5模块 4.6包 4.6.1创建包 4.6.2包导入 4.7本章小结 4.8同步练习 第5章数据类型 5.1数字类型 5.1.1整数类型 5.1.2浮点类型 5.1.3复数类型 5.1.4布尔类型 5.2数字类型相互转换 5.2.1隐式类型转换 5.2.2显式类型转换 5.3字符串类型 5.3.1字符串表示方式 5.3.2字符串格式化 5.3.3字符串查找 5.3.4字符串与数字相互转换 5.4本章小结 5.5同步练习 第6章运算符 6.1算术运算符 6.1.1一元运算符 6.1.2二元运算符 6.2关系运算符 6.3逻辑运算符 6.4位运算符 6.5赋值运算符 6.6其他运算符 6.6.1同一性测试运算符 6.6.2成员测试运算符 6.7运算符优先级 6.8本章小结 6.9同步练习 第7章控制语句 7.1分支语句 7.1.1if结构 7.1.2ifelse结构 7.1.3elif结构 7.1.4三元运算符替代品——条件表达式 7.2循环语句 7.2.1while语句 7.2.2for语句 7.3跳转语句 7.3.1break语句 7.3.2continue语句 7.3.3while和for中的else语句 7.4使用范围 7.5本章小结 7.6同步练习 7.7上机实验: 计算水仙花数 第8章序列 8.1序列概述 8.1.1索引操作 8.1.2序列的加和乘 8.1.3序列切片 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.4本章小结 8.5同步练习 8.6上机实验: 使用列表推导式 第9章集合 9.1可变集合 9.1.1创建可变集合 9.1.2修改可变集合 9.1.3遍历集合 9.2不可变集合 9.3集合推导式 9.4本章小结 9.5同步练习 9.6上机实验: 使用集合推导式 第10章字典 10.1创建字典 10.1.1使用大括号创建字典 10.1.2使用dict()函数创建字典 10.2修改字典 10.3访问字典 10.4遍历字典 10.5字典推导式 10.6本章小结 10.7同步练习 10.8上机实验: 使用字典推导式 第11章函数与函数式编程 11.1定义函数 11.2函数参数 11.2.1使用关键字参数调用函数 11.2.2参数默认值 11.2.3单星号(*)可变参数 11.2.4双星号(**)可变参数 11.3函数返回值 11.3.1无返回值函数 11.3.2多返回值函数 11.4函数变量作用域 11.5生成器 11.6嵌套函数 11.7函数式编程基础 11.7.1高阶函数与函数类型 11.7.2函数作为其他函数返回值使用 11.7.3函数作为其他函数参数使用 11.7.4匿名函数与lambda表达式 11.8函数式编程的三大基础函数 11.8.1过滤函数filter() 11.8.2映射函数map() 11.8.3聚合函数reduce() 11.9装饰器 11.9.1一个没有使用装饰器的示例 11.9.2使用装饰器 11.9.3同时使用多个装饰器 11.9.4给装饰器传递参数 11.10本章小结 11.11同步练习 11.12上机实验: 找出素数 第12章面向对象编程 12.1面向对象概述 12.2面向对象三个基本特性 12.2.1封装性 12.2.2继承性 12.2.3多态性 12.3类和对象 12.3.1定义类 12.3.2创建和使用对象 12.3.3实例变量 12.3.4类变量 12.3.5构造方法 12.3.6实例方法 12.3.7类方法 12.3.8静态方法 12.4封装性 12.4.1私有变量 12.4.2私有方法 12.4.3定义属性 12.5继承性 12.5.1继承概念 12.5.2重写方法 12.5.3多继承 12.6多态性 12.6.1多态概念 12.6.2类型检查 12.6.3鸭子类型 12.7Python根类——object 12.7.1__str__()方法 12.7.2对象比较方法 12.8本章小结 12.9同步练习 12.10上机实验: 设计多继承骡子类 第13章异常处理 13.1一个异常示例 13.2异常类继承层次 13.3常见异常 13.3.1AttributeError异常 13.3.2OSError异常 13.3.3IndexError异常 13.3.4KeyError异常 13.3.5NameError异常 13.3.6TypeError异常 13.3.7ValueError异常 13.4捕获异常 13.4.1tryexcept语句 13.4.2多except代码块 13.4.3tryexcept语句嵌套 13.4.4多重异常捕获 13.5异常堆栈跟踪 13.6释放资源 13.6.1finally代码块 13.6.2else代码块 13.6.3with as代码块自动资源管理 13.7自定义异常类 13.8显式抛出异常 13.9本章小结 13.10同步练习 13.11上机实验: 释放资源 第14章常用模块 14.1math模块 14.1.1舍入函数 14.1.2幂和对数函数 14.1.3三角函数 14.2random模块 14.3datetime模块 14.3.1datetime、date和time类 14.3.2日期和时间计算 14.3.3日期和时间格式化与解析 14.3.4时区 14.4本章小结 14.5同步练习 14.6上机实验: 输入与转换日期 第15章正则表达式 15.1正则表达式中的字符 15.1.1元字符 15.1.2字符转义 15.1.3开始与结束字符 15.2字符类 15.2.1定义字符类 15.2.2字符类取反 15.2.3区间 15.2.4预定义字符类 15.3量词 15.3.1使用量词 15.3.2贪婪量词和懒惰量词 15.4分组 15.4.1定义分组 15.4.2命名分组 15.4.3反向引用分组 15.4.4非捕获分组 15.5re模块中的重要函数 15.5.1search()和match()函数 15.5.2findall()和finditer()函数 15.5.3字符串分割 15.5.4字符串替换 15.6编译正则表达式 15.6.1已编译正则表达式对象 15.6.2编译标志 15.7本章小结 15.8同步练习 15.9上机实验: 找出HTML中图片 第16章文件操作与管理 16.1文件操作 16.1.1打开文件 16.1.2关闭文件 16.1.3文本文件读写 16.1.4二进制文件读写 16.2os模块 16.3os.path模块 16.4本章小结 16.5同步练习 16.6上机实验: 读写日期 第17章数据交换格式 17.1XML数据交换格式 17.1.1XML文档结构 17.1.2解析XML文档 17.1.3使用XPath 17.2JSON数据交换格式 17.2.1JSON文档结构 17.2.2JSON数据编码 17.2.3JSON数据解码 17.3本章小结 17.4同步练习 17.5上机实验: 解析结构化文档 第18章数据库编程 18.1数据持久化技术概述 18.2MySQL数据库管理系统 18.2.1数据库安装和配置 18.2.2登录服务器 18.2.3常见的管理命令 18.3Python DBAPI 18.3.1建立数据连接 18.3.2创建游标 18.4实例: User表CRUD操作 18.4.1安装PyMySQL库 18.4.2数据库编程一般过程 18.4.3数据查询操作 18.4.4数据修改操作 18.5NoSQL数据存储 18.5.1dbm数据库的打开和关闭 18.5.2dbm数据存储 18.6本章小结 18.7同步练习 18.8上机实验: 从结构化文档迁移数据到数据库 第19章网络编程 19.1网络基础 19.1.1网络结构 19.1.2TCP/IP 19.1.3IP地址 19.1.4端口 19.2TCP Socket低层次网络编程 19.2.1TCP Socket通信概述 19.2.2TCP Socket通信过程 19.2.3TCP Socket编程API 19.2.4实例: 简单聊天工具 19.2.5实例: 文件上传工具 19.3UDP Socket低层次网络编程 19.3.1UDP Socket编程API 19.3.2实例: 简单聊天工具 19.3.3实例: 文件上传工具 19.4访问互联网资源 19.4.1URL概念 19.4.2HTTP/HTTPS 19.4.3搭建自己的Web服务器 19.4.4使用urllib库 19.4.5发送GET请求 19.4.6发送POST请求 19.4.7实例: 图片下载器 19.5本章小结 19.6同步练习 19.7上机实验: 解析来自Web的结构化数据 第20章图形用户界面编程 20.1Python图形用户界面开发工具包 20.2wxPython安装 20.3wxPython基础 20.3.1wxPython类层次结构 20.3.2第一个wxPython程序 20.3.3wxPython界面构建层次结构 20.3.4界面设计工具 20.4事件处理 20.4.1一对一事件处理 20.4.2一对多事件处理 20.5布局管理 20.5.1不要使用绝对布局 20.5.2Sizer布局管理器 20.6wxPython基本控件 20.6.1静态文本和按钮 20.6.2文本输入控件 20.6.3复选框 20.6.4单选按钮 20.6.5下拉列表 20.6.6列表 20.6.7静态图片控件 20.7实例: 图书信息网格 20.8本章小结 20.9同步练习 20.10上机实验: 展示Web数据 第21章Python多线程编程 21.1基础知识 21.1.1进程 21.1.2线程 21.2使用threading模块 21.3创建线程 21.3.1自定义函数作为线程体 21.3.2继承Thread线程类实现线程体 21.4线程管理 21.4.1等待线程结束 21.4.2线程停止 21.5线程安全 21.5.1临界资源问题 21.5.2多线程同步 21.6线程间通信 21.6.1使用Condition实现线程间通信 21.6.2使用Event实现线程间通信 21.7本章小结 21.8同步练习 21.9上机实验: 网络爬虫 附录A同步练习参考答案