编辑推荐 "l\t零基础入门:从搭建环境、运行代码开始,逐步深入介绍基本的语法和数据结构、函数编程、面向对象编程等入门知识。 l\t轻松理解高级Python编程特性:利用深入浅出的实例介绍Python的动态语言特性,例如函数对象、装饰器、闭包、类的定制、多重继承与混入、元编程,以及性能优化技术、混合编程、并发与异步编程等。 l\t兼顾数据分析与Web开发:涵盖了Python语言最重要的两大应用领域——数据分析与Web开发。在数据分析方面,介绍了NumPy、SciPy、Pandas、Matplotlib、Scikit-learn等常用工具包的基本使用方法和实例。在Web开发方面,介绍了HTTP等Web开发基础知识,以及WebSocket协议、WSGI应用和ASGI应用的原理,并最终实现自己的Web编程框架。 l\t实践性强:融入多年教学与开发经验,介绍编程规范和Python编程的代码风格、调试与测试、多种优化技巧。通过尽可能简单的代码和实例来介绍语法、功能特征,厘清高级特性和新技术的来龙去脉。 " 内容推荐 本书主要内容分为Python编程入门和提高两个组成部分。入门部分介绍Python语言的基础知识,包括环境搭建、代码运行方式、基本语法、常用数据结构、函数编程以及面向对象编程等。提高部分介绍重要的Python中高级编程知识和技术,包括高级函数编程和面向对象编程知识,例如函数对象、装饰器、闭包、类的定制、多重继承与混入、元编程等,以及性能优化技术、混合编程、并发与异步编程。另外,本书还涵盖了数据分析与Web开发两大Python应用领域的基础知识。在数据分析方面,介绍了NumPy、SciPy、Pandas、Matplotlib、Scikit-learn等常用工具包的基本使用方法和实例。在Web开发方面,介绍了HTTP等Web开发基础知识,以及WebSocket协议、WSGI应用和ASGI应用的原理,并最终使读者能够实现自己的Web编程框架。本书可以作为计算机应用、人工智能、信息管理与信息系统等相关专业本科生编程基础课程的教材或参考书,也可以供Python学习者、Web开发人员和数据分析研究人员参考。 目录 第1章Python概述1 1.1Python语言1 1.1.1Python语言的发展1 1.1.2Python语言的特点2 1.1.3Python的主要应用领域3 1.2Python运行环境3 1.2.1Python的不同实现和发行版4 1.2.2Python环境的安装4 1.3Python程序的运行8 1.3.1交互模式8 1.3.2脚本模式9 1.4常用开发工具10 1.5Python虚拟环境12 1.5.1什么是虚拟环境12 1.5.2虚拟环境的创建和使用12 1.6小结13 1.7思考与练习14 第2章Python编程基础15 2.1变量与表达式15 2.1.1变量的定义与赋值15 2.1.2算术表达式16 2.1.3关系表达式与逻辑表达式17 2.1.4海象运算符18 2.1.5运算符的优先级19 2.2语句19 2.2.1简单语句19 2.2.2复合语句与空语句20 2.2.3注释21 2.3数据类型21 2.3.1基本数据类型22 2.3.2空类型25 2.3.3扩展数据类型26 2.4流程控制27 2.4.1结构化程序设计27 2.4.2选择27 2.4.3循环29 2.5模块和包31 2.5.1模块和包的导入31 2.5.2自定义包32 2.5.3常用内置模块33 2.6Python编程规范34 2.6.1规范编码的重要性34 2.6.2PEP8规范34 2.7小结35 2.8思考与练习36 第3章常用数据结构37 3.1序列37 3.1.1序列的种类37 3.1.2序列的基本作38 3.2列表41 3.2.1列表的定义41 3.2.2列表元素的作41 3.2.3列表推导式44 3.2.4栈46 3.3元组46 3.3.1定义和使用46 3.3.2元组的不可变陷阱47 3.3.3生成器推导式47 3.4集合48 3.4.1集合的定义48 3.4.2常用集合作方法49 3.4.3集合推导式50 3.4.4排列组合50 3.5字典51 3.5.1字典的定义51 3.5.2字典常用作方法52 3.5.3字典推导式53 3.6字符串53 3.6.1字符串的定义54 3.6.2常用字符串处理方法54 3.6.3字符串格式化56 3.7二进制序列59 3.7.1字节串的原理59 3.7.2字节串的应用60 3.8高级数据结构60 3.8.1collection模块60 3.8.2array.array62 3.8.3其他有用的数据结构63 3.9小结63 3.10思考与练习63 第4章函数与函数编程64 4.1函数的定义与调用64 4.1.1函数的定义64 4.1.2函数的调用66 4.1.3变量的作用域67 4.2函数的参数69 4.2.1位置参数与关键字参数69 4.2.2可选参数71 4.2.3可变参数71 4.2.4参数分配72 4.3函数的类型注解73 4.3.1类型注解73 4.3.2typing模块74 4.3.3类型注解的使用76 4.4函数对象76 4.4.1一等对象76 4.4.2Python函数的面向对象特征77 4.4.3Python函数的一等对象特征78 4.5嵌套函数与闭包80 4.5.1嵌套函数80 4.5.2闭包81 4.6函数装饰器84 4.6.1简单函数装饰器84 4.6.2函数装饰器的工作原理85 4.6.3函数装饰器的优化87 4.6.4装饰器的叠加90 4.6.5含参装饰器92 4.6.6函数装饰器应用实例94 4.6.7重要的Python内置装饰器95 4.7常用函数编程工具97 4.7.1常用工具函数97 4.7.2operator模块98 4.7.3itertools模块98 4.8小结99 4.9思考与练习99 第5章面向对象编程基础100 5.1面向对象的概念与特征100 5.1.1面向对象的概念100 5.1.2类与对象101 5.1.3封装性102 5.1.4继承性103 5.1.5多态性103 5.2类的定义与实例化104 5.2.1类的定义104 5.2.2类的实例化105 5.2.3成员的隐藏108 5.2.4类命名空间109 5.3进一步了解属性110 5.3.1类属性与实例属性110 5.3.2property装饰器111 5.4进一步了解方法113 5.4.1实例方法、类方法与静态方法113 5.4.2方法重载115 5.5类的继承116 5.5.1派生类的定义116 5.5.2方法重写117 5.5.3多重继承119 5.5.4对象、类的关系120 5.5.5调用基类方法122 5.6混入124 5.6.1混入的概念124 5.6.2Python中的混入126 5.7小结130 5.8思考与练习130 第6章面向对象编程进阶131 6.1类的定制131 6.1.1常用特殊属性131 6.1.2对象运算134 6.1.3对象描述136 6.1.4对象成员访问控制137 6.1.5描述器139 6.1.6可调用对象140 6.1.7容器141 6.1.8迭代器与可迭代对象142 6.2生成器144 6.2.1生成器的创建144 6.2.2生成器与迭代器146 6.3类装饰器147 6.3.1修饰方法的装饰器147 6.3.2修饰类的装饰器148 6.3.3基于类的装饰器150 6.4抽象基类153 6.4.1抽象基类的概念153 6.4.2抽象基类的使用154 6.4.3常用内置抽象基类157 6.4.4自定义抽象基类158 6.5元类158 6.5.1Python类的特征158 6.5.2元类的定义与使用160 6.5.3元类的应用实例161 6.6对象序列化163 6.6.1pickle164 6.6.2copyreg166 6.6.3shelve168 6.7小结169 6.8思考与练习169 第7章调试与测试170 7.1调试方法170 7.1.1利用print调试程序170 7.1.2利用logging调试程序171 7.1.3pdb调试器173 7.2异常处理175 7.2.1异常的原因175 7.2.2断言176 7.2.3异常处理177 7.2.4异常的类型180 7.3单元测试182 7.3.1单元测试的概念及工具182 7.3.2unittest基础183 7.3.3创建测试用例184 7.3.4运行测试用例185 7.3.5测试套件的创建与执行186 7.3.6测试设施187 7.4文档测试188 7.4.1文档测试用例188 7.4.2运行文档测试188 7.5小结189 7.6思考与练习189 第8章数据处理与分析基础190 8.1文件读写190 8.1.1文件的打开和关闭190 8.1.2路径管理191 8.1.3文本文件读写193 8.1.4二进制文件读写194 8.2上下文管理195 8.2.1with语句块195 8.2.2上下文管理协议196 8.3数据库编程198 8.3.1数据库应用编程接口198 8.3.2嵌入式数据库编程200 8.4正则表达式202 8.4.1正则表达式匹配规则202 8.4.2正则表达式的应用205 8.4.3正则表达式的编译206 8.5数据分析中的数据结构207 8.5.1NumPy207 8.5.2SciPy211 8.6数据可视化214 8.6.1简单绘图214 8.6.2图像的配置与修饰215 8.6.3多子图图像的绘制218 8.6.4三维图像的绘制219 8.7Pandas基础220 8.7.1数据结构221 8.7.2数据访问223 8.7.3统计分析225 8.8Scikit-learn基础226 8.8.1Scikit-learn简介226 8.8.2分类问题227 8.8.3聚类问题229 8.9小结230 8.10思考与练习230 第9章性能优化技术232 9.1程序性能分析232 9.1.1time与timeit232 9.1.2profile235 9.2即时编译技术237 9.2.1即时编译的概念237 9.2.2PyPy238 9.2.3Numba239 9.3混合编程概念及环境搭建242 9.4利用ctypes实现混合编程243 9.4.1C函数库的调用243 9.4.2C类的包装247 9.5利用CAPI构建Python扩展249 9.5.1构建Python扩展的步骤249 9.5.2扩展函数249 9.5.3模块配置与初始化252 9.5.4扩展的构建与安装252 9.5.5实例252 9.6项目打包与发布257 9.6.1打包与发布的流程257 9.6.2项目打包与发布示例259 9.7小结261 9.8思考与练习261 第10章网络编程与并发处理262 10.1网络套接字的概念262 10.1.1套接字的类型262 10.1.2基于套接字的网络通信过程263 10.2套接字编程264 10.2.1socket模块264 10.2.2面向连接的套接字编程266 10.2.3面向无连接的套接字编程267 10.2.4并发问题268 10.3多进程编程269 10.3.1进程的创建与运行269 10.3.2利用多进程处理网络并发271 10.3.3利用进程池处理网络并发272 10.4多线程编程274 10.4.1线程的概念与特点274 10.4.2网络并发处理的多线程方法275 10.5异步编程275 10.5.1异步编程概念275 10.5.2基于生成器的协程276 10.5.3协程280 10.5.4Python异步编程基础281 10.5.5利用异步编程处理网络并发282 10.6套接字服务器285 10.6.1socketserver模块简介285 10.6.2利用套接字服务器处理网络并发286 10.7小结286 10.8思考与练习287 第11章Web的概念与原理288 11.1Web概念与开发技术288 11.1.1Web的概念288 11.1.2Web页面的访问过程290 11.1.3Web开发技术栈290 11.2统一资源标识符291 11.2.1统一资源定位符292 11.2.2URL的解析292 11.3文本标记语言293 11.3.1HTML文档的结构293 11.3.2HTML文档的修饰与控制295 11.4文本传输协议297 11.4.1HTTP请求298 11.4.2HTTP响应300 11.4.3HTTP协议解析302 11.5Web服务器的工作原理305 11.5.1基于套接字的Web服务器端305 …… 第12章PythonWed开发技术 参考文献 |