×
暂无评论
图文详情
  • ISBN:9787121447525
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:636
  • 出版时间:2023-01-01
  • 条形码:9787121447525 ; 978-7-121-44752-5

内容简介

本书全面而深入介绍了Python编程的相关内容,全书内容大致可分为四个部分,一部分系统讲解了Python的基本语法结构、函数编程、类和对象、模块和包、异常处理等;第二部分主要介绍Python常用的内置模块和包,这部分包括正则表达式支持IO编程、数据库编程、并发编程、网络通信编程等内容;第三部分主要介绍Python开发工程化方面的内容;第四部分则属于"Python项目实战”,这部分通过项目介绍了Python游戏开发、大数据展示、网络爬虫等热门技能,进一步贴近就业岗位需求。

目录

第1章 Python语言概述和开发环境1 1.1 Python简介2 1.1.1 Python简史2 1.1.2 Python的特点3 1.2 Python程序运行机制3 1.3 开发Python的准备4 1.3.1 在Windows上安装Python4 1.3.2 在Linux上安装Python6 1.3.3 在Mac OS X上安装Python7 1.4 **个Python程序7 1.4.1 编辑Python源程序7 1.4.2 使用IDLE运行Python程序8 1.4.3 使用命令行工具运行Python程序8 1.5 交互式解释器10 1.6 本章小结11 本章练习11 第2章 变量和简单类型12 2.1 单行注释和多行注释13 2.2 变量14 2.2.1 Python是弱类型语言14 2.2.2 使用print函数输出变量15 2.2.3 变量的命名规则16 2.2.4 Python的关键字和内置函数17 2.3 数值类型18 2.3.1 整型18 2.3.2 浮点型20 2.3.3 复数20 2.4 字符串入门21 2.4.1 字符串和转义字符21 2.4.2 拼接字符串22 2.4.3 repr和字符串22 2.4.4 使用input和raw_input获取用户 输入23 2.4.5 长字符串24 2.4.6 原始字符串24 2.4.7 字节串(bytes)25 2.5 深入使用字符串27 2.5.1 转义字符27 2.5.2 字符串格式化27 2.5.3 序列相关方法29 2.5.4 大小写相关方法30 2.5.5 删除空白32 2.5.6 查找、替换相关方法32 2.5.7 分割、连接方法34 2.6 运算符34 2.6.1 赋值运算符34 2.6.2 算术运算符35 2.6.3 位运算符37 2.6.4 扩展后的赋值运算符40 2.6.5 索引运算符40 2.6.6 比较运算符与bool类型40 2.6.7 逻辑运算符41 2.6.8 三目运算符42 2.6.9 in运算符43 2.6.10 运算符的结合性和优先级43 2.7 本章小结44 本章练习44 第3章 列表、元组和字典46 3.1 序列简介47 3.1.1 Python的序列47 3.1.2 创建列表和元组47 3.2 列表和元组的通用用法48 3.2.1 通过索引使用元素48 3.2.2 子序列48 3.2.3 加法49 3.2.4 乘法49 3.2.5 in运算符50 3.2.6 长度、*大值和*小值50 3.2.7 序列封包和序列解包51 3.3 使用列表52 3.3.1 创建列表52 3.3.2 增加列表元素53 3.3.3 删除列表元素54 3.3.4 修改列表元素55 3.3.5 列表的其他常用方法56 3.4 使用字典58 3.4.1 字典入门58 3.4.2 创建字典58 3.4.3 字典的基本用法59 3.4.4 字典的常用方法60 3.4.5 使用字典格式化字符串63 3.5 本章小结63 本章练习64 第4章 流程控制65 4.1 顺序结构66 4.2 if分支结构66 4.2.1 不要忘记缩进67 4.2.2 不要随意缩进69 4.2.3 不要遗忘冒号70 4.2.4 if条件的类型70 4.2.5 if分支的逻辑错误71 4.2.6 if表达式72 4.2.7 pass语句72 4.3 断言73 4.4 循环结构73 4.4.1 while循环73 4.4.2 使用while循环遍历列表和元组74 4.4.3 for-in循环75 4.4.4 使用for-in循环遍历列表和元组76 4.4.5 使用for-in循环遍历字典77 4.4.6 循环使用else78 4.4.7 嵌套循环79 4.4.8 for表达式80 4.4.9 常用工具函数82 4.5 控制循环结构83 4.5.1 使用break结束循环83 4.5.2 使用continue忽略本次循环的剩 下语句85 4.5.3 使用return结束方法85 4.6 牛刀小试86 4.6.1 数字转人民币读法86 4.6.2 绕圈圈87 4.6.3 控制台五子棋89 4.6.4 控制台超市系统90 4.7 本章小结94 本章练习94 第5章 函数和lambda表达式97 5.1 函数入门98 5.1.1 理解函数98 5.1.2 定义函数和调用函数99 5.1.3 为函数提供文档100 5.1.4 多个返回值100 5.1.5 递归函数101 5.2 函数的参数102 5.2.1 关键字(keyword)参数102 5.2.2 参数默认值103 5.2.3 参数收集(个数可变的参数)105 5.2.4 逆向参数收集106 5.2.5 函数的参数传递机制107 5.2.6 变量作用域111 5.3 局部函数113 5.4 函数的高级内容114 5.4.1 使用函数变量115 5.4.2 使用函数作为函数形参115 5.4.3 使用函数作为返回值116 5.5 局部函数与lambda表达式117 5.5.1 回顾局部函数117 5.5.2 使用lambda表达式代替局部函数118 5.6 本章小结119 本章练习119 第6章 类和对象120 6.1 类和对象121 6.1.1 定义类121 6.1.2 对象的产生和使用122 6.1.3 对象的动态性123 6.1.4 实例方法和自动绑定self124 6.2 方法126 6.2.1 类也能调用实例方法126 6.2.2 类方法与静态方法128 6.2.3 @函数装饰器128 6.2.4 再论类命名空间131 6.3 成员变量131 6.3.1 类变量和实例变量131 6.3.2 使用property函数定义属性134 6.4 隐藏和封装137 6.5 类的继承139 6.5.1 继承的语法139 6.5.2 关于多继承140 6.5.3 重写父类的方法140 6.5.4 使用未绑定方法调用被重写的 方法141 6.5.5 使用super函数调用父类的构造 方法142 6.6 Python的动态性143 6.6.1 动态属性与__slots__144 6.6.2 使用type()函数定义类145 6.6.3 使用metaclass146 6.7 多态147 6.7.1 多态性147 6.7.2 检查类型149 6.8 枚举类150 6.8.1 枚举入门150 6.8.2 枚举的构造器152 6.9 本章小结153 本章练习153 第7章 异常处理154 7.1 异常概述155 7.2 异常处理机制156 7.2.1 使用try...except捕获异常156 7.2.2 异常类的继承体系157 7.2.3 多异常捕获159 7.2.4 访问异常信息160 7.2.5 else块161 7.2.6 使用finally回收资源163 7.2.7 异常处理嵌套165 7.3 使用raise引发异常165 7.3.1 引发异常165 7.3.2 自定义异常类166 7.3.3 except和raise同时使用167 7.3.4 raise不需要参数168 7.4 Python的异常传播轨迹168 7.5 异常处理规则170 7.5.1 不要过度使用异常171 7.5.2 不要使用过于庞大的try块172 7.5.3 不要忽略捕获到的异常172 7.6 本章小结172 本章练习173 第8章 Python类的特殊方法174 8.1 常见的特殊方法175 8.1.1 重写__repr__方法175 8.1.2 析构方法:__del__176 8.1.3 __dir__方法177 8.1.4 __dict__属性178 8.1.5 __getattr__、__setattr__等178 8.2 与反射相关的属性和方法180 8.2.1 动态操作属性180 8.2.2 __call__属性182 8.3 与序列相关的特殊方法183 8.3.1 序列相关方法183 8.3.2 实现迭代器185 8.3.3 扩展列表、元组和字典186 8.4 生成器186 8.4.1 创建生成器187 8.4.2 生成器的方法189 8.5 运算符重载的特殊方法191 8.5.1 与数值运算符相关的特殊方法191 8.5.2 与比较运算符相关的特殊方法194 8.5.3 与单目运算符相关的特殊方法195 8.5.4 与类型转换相关的特殊方法196 8.5.5 与常见的内建函数相关的特殊 方法197 8.6 本章小结198 本章练习198 第9章 模块和包199 9.1 模块化编程200 9.1.1 导入模块的语法200 9.1.2 定义模块203 9.1.3 为模块编写说明文档203 9.1.4 为模块编写测试代码204 9.2 加载模块205 9.2.1 使用环境变量205 9.2.2 默认的模块加载路径208 9.2.3 导入模块的本质209 9.2.4 模块的__all__变量211 9.3 使用包212 9.3.1 什么是包212 9.3.2 定义包212 9.3.3 导入包内成员214 9.4 查看模块内容216 9.4.1 模块包含什么216 9.4.2 使用__doc__属性查看文档217 9.4.3 使用__file__属性查看模块的源 文件路径218 9.5 本章小结218 本章练习218 第10章 常见模块219 10.1 sys220 10.1.1 获取运行参数222 10.1.2 动态修改模块加载路径223 10.2 os模块223 10.3 random225 10.4 time227 10.5 JSON支持230 10.5.1 JSON的基本知识230 10.5.2 Python的JSON支持232 10.6 正则表达式236 10.6.1 Python的正则表达式支持236 10.6.2 正则表达式旗标241 10.6.3 创建正则表达式242 10.6.4 子表达式244 10.6.5 贪婪模式与勉强模式246 10.7 容器相关类247 10.7.1 set和frozenset248 10.7.2 双端队列(deque)250 10.7.3 Python的堆操作253 10.8 collections下的容器支持255 10.8.1 ChainMap对象255 10.8.2 Counter对象257 10.8.3 defaultdict对象260 10.8.4 namedtuple工厂函数261 10.8.5 OrderedDict对象262 10.9 函数相关模块264 10.9.1 itertools模块的功能函数264 10.9.2 functools模块的功能函数267 10.10 本章小结273 本章练习273 第11章 图形界面编程275 11.1 Python的GUI库276 11.2 Tkinter GUI编程的组件277 11.3 布局管理器283 11.3.1 Pack布局管理器283 11.3.2 Grid布局管理器285 11.3.3 Place布局管理器287 11.4 事件处理288 11.4.1 简单的事件处理289 11.4.2 事件绑定289 11.5 Tkinter常用组件293 11.5.1 使用ttk组件293 11.5.2 Variable类294 11.5.3 使用compound选项295 11.5.4 Entry和Text组件297 11.5.5 Radiobutton和Checkbutton组件300 11.5.6 Listbox和Combobox组件303 11.5.7 Spinbox组件308 11.5.8 Scale和LabeledScale组件309 11.5.9 Labelframe组件312 11.5.10 Panedwindow组件314 11.5.11 OptionMenu组件316 11.6 对话框(Dialog)318 11.6.1 普通对话框318 11.6.2 自定义模式、非模式对话框320 11.6.3 输入对话框322 11.6.4 文件对话框324 11.6.5 颜色选择对话框326 11.6.6 消息框327 11.7 菜单330 11.7.1 窗口菜单330 11.7.2 右键菜单334 11.8 在Canvas中绘图336 11.8.1 Tkinter Canvas的绘制功能336 11.8.2 操作图形项的标签343 11.8.3 操作图形项345 11.8.4 为图形项绑定事件349 11.8.5 绘制动画354 11.9 本章小结357 本章练习357 第12章 文件I/O358 12.1 使用pathlib模块操作目录359 12.1.1 PurePath的基本功能360 12.1.2 PurePath的属性和方法362 12.1.3 Path的功能和用法363 12.2 使用os.path操作目录365 12.3 使用fnmatch处理文件名匹配366 12.4 打开文件367 12.4.1 文件打开模式367 12.4.2 缓冲368 12.5 读取文件369 12.5.1 按字节或字符读取369 12.5.2 按行读取371 12.5.3 使用fileinput读取多个输入流371 12.5.4 文件迭代器372 12.5.5 管道输入373 12.5.6 使用with语句374 12.5.7 使用linecache随机读取指定行376 12.6 写文件376 12.6.1 文件指针的概念376 12.6.2 输出内容377 12.7 os模块的文件和目录函数378 12.7.1 与目录相关的函数379 12.7.2 与权限相关的函数380 12.7.3 与文件访问相关的函数381 12.8 使用tempfile模块生成临时文件和 临时目录383 12.9 本章小结385 本章练习385 第13章 数据库编程386 13.1 Python数据库API简介387 13.1.1 全局变量387 13.1.2 数据库API的核心类388 13.1.3 操作数据库的基本流程389 13.2 操作SQLite数据库389 13.2.1 创建数据表390 13.2.2 使用SQLite Expert工具391 13.2.3 使用序列重复执行DML语句393 13.2.4 执行查询395 13.2.5 事务控制396 13.2.6 执行SQL脚本397 13.2.7 创建自定义函数398 13.2.8 创建聚集函数399 13.2.9 创建比较函数400 13.3 操作MySQL数据库401 13.3.1 下载和安装MySQL数据库401 13.3.2 使用pip工具管理模块404 13.3.3 执行DDL语句405 13.3.4 执行DML语句407 13.3.5 执行查询语句408 13.3.6 调用存储过程409 13.4 本章小结410 本章练习411 第14章 并发编程412 14.1 线程概述413 14.1.1 线程和进程413 14.1.2 多线程的优势414 14.2 线程的创建和启动415 14.2.1 调用Thread类的构造器创建 线程415 14.2.2 继承Thread类创建线程类417 14.3 线程的生命周期418 14.3.1 新建和就绪状态418 14.3.2 运行和阻塞状态419 14.3.3 线程死亡420 14.4 控制线程421 14.4.1 join线程422 14.4.2 后台线程422 14.4.3 线程睡眠:sleep423 14.5 线程同步424 14.5.1 线程安全问题424 14.5.2 同步锁(Lock)425 14.5.3 死锁428 14.6 线程通信430 14.6.1 使用Condition实现线程通信430 14.6.2 使用队列(Queue)控制线程 通信433 14.6.3 使用Event控制线程通信434 14.7 线程池436 14.7.1 使用线程池437 14.7.2 获取执行结果439 14.8 线程相关类440 14.8.1 线程局部变量440 14.8.2 定时器441 14.8.3 任务调度442 14.9 多进程443 14.9.1 使用fork创建新进程443 14.9.2 使用multiprocessing.Process创建 新进程444 14.9.3 Context和启动进程的方式446 14.9.4 使用进程池管理进程448 14.9.5 进程通信449 14.10 本章小结451 本章练习451 第15章 网络编程452 15.1 网络编程的基础知识453 15.1.1 网络基础知识453 15.1.2 IP地址和端口号454 15.2 Python的基本网络支持455 15.2.1 Python的网络模块概述455 15.2.2 使用urllib.parse子模块456 15.2.3 使用urllib.request读取资源459 15.2.4 管理cookie464 15.3 基于TCP协议的网络编程467 15.3.1 TCP协议基础467 15.3.2 使用socket创建TCP服务器端468 15.3.3 使用socket通信469 15.3.4 加入多线程470 15.3.5 记录用户信息472 15.3.6 半关闭的socket477 15.3.7 selectors模块478 15.4 基于UDP协议的网络编程480 15.4.1 UDP协议基础480 15.4.2 使用socket发送和接收数据481 15.4.3 使用UDP协议实现多点广播483 15.5 电子邮件支持484 15.5.1 使用smtplib模块发送邮件484 15.5.2 使用poplib模块收取邮件488 15.6 本章小结491 本章练习491 第16章 文档和测试492 16.1 使用pydoc生成文档493 16.1.1 在控制台中查看文档494 16.1.2 生成HTML文档495 16.1.3 启动本地服务器来查看文档信息495 16.1.4 查找模块496 16.2 软件测试概述497 16.2.1 软件测试的概念和目的497 16.2.2 软件测试的分类498 16.2.3 开发活动和测试活动499 16.2.4 常见的Bug管理工具499 16.3 文档测试500 16.4 单元测试502 16.4.1 单元测试概述502 16.4.2 单元测试的逻辑覆盖504 16.5 使用PyUnit(unittest)506 16.5.1 PyUnit(unittest)的用法507 16.5.2 运行测试510 16.5.3 使用测试包511 16.5.4 测试固件之setUp和tearDown513 16.5.5 跳过测试用例515 16.6 本章小结516 本章练习516 第17章 打包和发布517 17.1 使用zipapp模块518 17.1.1 生成可执行的Python档案包518 17.1.2 创建独立应用519 17.2 使用PyInstaller生成可执行程序520 17.2.1 安装PyInstaller520 17.2.2 生成可执行程序521 17.3 本章小结523 本章练习523 第18章 合金弹头524 18.1 合金弹头游戏简介525 18.2 pygame简介525 18.2.1 安装pygame526 18.2.2 pygame常用的游戏API527 18.3 开发游戏界面组件529 18.3.1 游戏界面分析529 18.3.2 实现“怪物”类529 18.3.3 实现怪物管理534 18.3.4 实现“子弹”类536 18.3.5 加载、管理游戏图片538 18.3.6 让游戏“运行”起来540 18.4 增加“角色”541 18.4.1 开发“角色”类541 18.4.2 添加角色547 18.5 合理绘制地图550 18.6 增加音效551 18.7 增加游戏场景554 18.8 本章小结558 本章练习558 第19章 数据可视化559 19.1 使用Matplotlib生成数据图560 19.1.1 安装Matplotlib包560 19.1.2 Matplotlib数据图入门561 19.1.3 管理图例562 19.1.4 管理坐标轴565 19.1.5 管理多个子图566 19.2 功能丰富的数据图570 19.2.1 饼图570 19.2.2 柱状图571 19.2.3 水平柱状图573 19.2.4 散点图574 19.2.5 等高线图576 19.2.6 3D图形577 19.3 使用Pygal生成数据图578 19.3.1 安装Pygal包578 19.3.2 Pygal数据图入门578 19.3.3 配置Pygal数据图580 19.4 Pygal支持的常见数据图581 19.4.1 折线图581 19.4.2 水平柱状图和水平折线图581 19.4.3 叠加柱状图和叠加折线图582 19.4.4 饼图583 19.4.5 点图584 19.4.6 仪表(Gauge)图585 19.4.7 雷达图586 19.5 处理数据587 19.5.1 CSV文件格式587 19.5.2 JSON数据590 19.5.3 数据清洗593 19.5.4 读取网络数据595 19.6 本章小结597 本章练习597 第20章 网络爬虫598 20.1 Scrapy简介599 20.1.1 了解Scrapy599 20.1.2 安装Scrapy600 20.2 使用爬虫爬取、分析招聘信息601 20.2.1 创建Scrapy项目601 20.2.2 使用shell调试工具603 20.2.3 Scrapy开发步骤606 20.2.4 使用JSON导出信息611 20.2.5 将数据写入数据库611 20.2.6 使用Pygal展示招聘信息612 20.3 处理反爬虫613 20.3.1 使用shell调试工具分析目标站点614 20.3.2 使用Scrapy爬取高清图片616 20.3.3 应对反爬虫的常见方法618 20.3.4 整合Selenium模拟浏览器行为620 20.4 本章小结624 本章练习624
展开全部

作者简介

李刚,十余年软件开发从业经验,疯狂软件教育中心教学总监。疯狂Java实训营创始人,疯狂体系原创图书作者。CSDN特邀讲师。培训的学生已在腾讯、阿里、华为、IBM、网易、电信盈科等名企就职。国内知名高端IT技术图书作家,已出版《疯狂Java讲义》《疯狂Spring Boot讲义》《疯狂Android讲义》《轻量级Java Web企业应用实战》《疯狂前端开发讲义》《疯狂HTML5/CSS3/讲义》等著作。其中疯狂Java体系图书均已沉淀多年,赢得极高的市场认同,多次重印,多部著作印刷数量超过10万册,并被多所“985”“211”院校选作教材或参考书,部分图书已被翻译成繁体中文版,授权到宝岛台湾。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航