内容简介
本书是一部系统论述Python编程语言、OOP编程思想以及函数式编程思想的立体化教程(含图书、教学课件、源代码与视频教程)。全书共分为四篇:第一篇Python语言基础(第1~8章),第二篇Python编程进阶(第9~17章),第三篇Python常用库与框架(第18~22章),第四篇Python项目实战(第23~28章)。主要内容包括:开篇综述、开发环境搭建、第一个Python程序、Python语法基础、Python编码规范、数据类型、运算符、控制语句、数据结构(序列、集合和字典)、函数与函数式编程、面向对象编程、异常处理、常用模块、正则表达式、文件操作与管理、数据交换格式、数据库编程、网络编程、wxPython图形用户界面编程、Python多线程编程、项目实战1:网络爬虫技术——爬取搜狐证券股票数据、项目实战2:数据分析技术——贵州茅台股票数据分析、项目实战3:数据可视化技术——贵州茅台股票数据可视化、项目实战4:计算机视觉技术——网站验证码识别、项目实战5:PythonWebFlask框架——PetStore宠物商店项目、项目实战6:Python综合技术——QQ聊天工具开发。为便于读者高效学习,快速掌握Python编程方法,本书提供完整的教学课件、完整的源代码与丰富的配套视频教程以及在线答疑服务等内容。本书适合作为Python程序设计者的参考用书。作者简介
关东升一个在IT领域摸爬滚打20多年的老程序员、知名培训专家、畅销书作家。精通多种IT技术。参与设计和开发北京市公交一卡通大型项目,开发国家农产品追溯系统、金融系统微博等移动客户端项目,并在AppStore发布多款游戏和应用软件。长期为中国移动、中国联通、南方航空、中石油、工商银行、平安银行和天津港务局等企事业单位提供培训服务。先后出版了《iOS开发指南》《从零开始学Swift》《Android网络游戏开发实战》《Cocos2d-x实战》《Java从小白到大牛》《Kotlin从小白到大牛》等40多部图书。专家点评
《Python从小白到大牛》(第2版)系统论述了Python基础知识与高级编程技术,不管你是“小白”还是“大牛”,阅读本书会使你受益匪浅。本书提供了Python很多项目实战案例,值得每个程序员收藏。——柯博文LoopTek公司首席执行官,大富翁游戏首席设计师《Python从小白到大牛》(第2版)通过对Python重要知识点的剖析及简单明了的实例介绍,使读者在较短的时间内掌握Python编程技能,成为专业的Python高级技术人才。——一休51CTO副总裁、51CTO学院负责人《Python从小白到大牛》(第2版)一书理论与实战并重,实用性强,书籍脉络清晰,通俗易懂,是Python工程师必备的技术指南。——宋廷强青岛科技大学信息学院副院长《Python从小白到大牛》(第2版)将作者十多年的Python编程经验融入书中,满是“干货”。本书可以作为程序员的Python技术宝典。——杨明宇亚信科技高级工程师《Python从小白到大牛》(第2版)一书构思新颖,实践性强,内容丰富,所有程序及应用实例均可在工作环境中运行。无论是对于Python初学者,还是对于高级Python技术人员,此书都值得阅读。——李争微软公司开发者体验与平台合作部技术顾问毫无疑问,《Python从小白到大牛》(第2版)是一本通俗易懂,能帮助你快速成为Python工程师的好书,希望此书能助你进步,掌握高效Python编程技术。——吴光科京峰教育首席执行官
图书目录
推荐序
前言
知识图谱
第一篇 Python语言基础
第1章 开篇综述3
1.1Python语言历史4
1.2Python语言设计哲学——Python之禅4
1.3Python语言特点5
1.4Python语言应用前景6
1.5 如何获得帮助7
第2章 开发环境搭建8
2.1 搭建Python环境.8
2.2PyCharm开发工具10
2.2.1 下载和安装11
2.2.2 设置Python解释器12
2.3 文本编辑工具14
2.4 本章小结14
2.5 动手实践14
第3章 第一个Python程序15
3.1 使用PythonShell15
3.2 使用PyCharm实现17
3.2.1 创建项目17
3.2.2 创建Python代码文件19
3.2.3 编写代码20
3.2.4 运行程序20
3.3 文本编辑工具+Python解释器实现21
3.3.1 编写代码21
3.3.2 运行程序21
3.4 代码解释22
Python6从小白到大牛(第2版)
3.5 本章小结23
3.6 动手实践:世界,你好23
第4章 Python语法基础24
4.1 标识符和关键字24
4.1.1 标识符24
4.1.2 关键字24
4.2 变量和常量25
4.2.1 变量25
4.2.2 常量25
4.3 注释25
4.4 语句26
4.5 模块27
4.6 包28
4.6.1 创建包28
4.6.2 包导入29
4.7 本章小结30
4.8 同步练习30
第5章 Python编码规范31
5.1 命名规范31
5.2 注释规范32
5.2.1 文件注释32
5.2.2 文档注释32
5.2.3 代码注释34
5.2.4 使用TODO注释.35
5.3 导入规范36
5.4 代码排版37
5.4.1 空行37
5.4.2 空格38
5.4.3 缩进39
5.4.4 断行39
5.5 本章小结40
5.6 同步练习40
第6章 数据类型42
6.1 数字类型42
6.1.1整数类型42
6.1.2 浮点类型43
6.1.3 复数类型43
6.1.4 布尔类型43
目录7
6.2 数字类型互相转换44
6.2.1 隐式类型转换44
6.2.2 显式类型转换45
6.3 字符串类型45
6.3.1 字符串表示方式45
6.3.2 字符串格式化47
6.3.3 字符串查找49
6.3.4 字符串与数字互相转换50
6.4 本章小结51
6.5 同步练习52
第7章 运算符53
7.1 算术运算符53
7.1.1 一元运算符53
7.1.2 二元运算符53
7.2 关系运算符55
7.3 逻辑运算符56
7.4 位运算符57
7.5 赋值运算符59
7.6 其他运算符61
7.6.1 同一性测试运算符61
7.6.2 成员测试运算符62
7.7 运算符优先级62
7.8 本章小结63
7.9 同步练习63
第8章 控制语句64
8.1 分支语句64
8.1.1if结构64
8.1.2if-else结构65
8.1.3elif结构66
8.1.4 三元运算符替代品——条件表达式67
8.2 循环语句67
8.2.1while语句67
8.2.2for语句68
8.3 跳转语句69
8.3.1break语句69
8.3.2continue语句70
8.3.3while和for中的else语句70
8.4 使用范围72
Python8从小白到大牛(第2版)
8.5 本章小结72
8.6 同步练习72
8.7 动手实践:计算水仙花数73
第二篇 Python编程进阶
第9章 序列77
9.1 序列概述77
9.1.1 索引操作78
9.1.2 序列的加和乘78
9.1.3 序列切片79
9.2 元组80
9.2.1 创建元组80
9.2.2访问元组81
9.2.3 遍历元组82
9.3 列表82
9.3.1 列表创建83
9.3.2 追加元素83
9.3.3 插入元素84
9.3.4 替换元素84
9.3.5 删除元素84
9.3.6 其他常用方法85
9.3.7 列表推导式86
9.4 本章小结87
9.5 同步练习87
9.6 动手实践:使用列表推导式87
第10章 集合88
10.1 可变集合88
10.1.1 创建可变集合88
10.1.2 修改可变集合89
10.1.3 遍历集合90
10.2 不可变集合90
10.3 集合推导式91
10.4 本章小结92
10.5 同步练习92
10.6动手实践:使用集合推导式92
第11章 字典93
11.1 创建字典93
目录9
11.1.1 使用大括号创建字典93
11.1.2 使用dict()函数创建字典94
11.2 修改字典95
11.3 访问字典96
11.4 遍历字典96
11.5 字典推导式97
11.6 本章小结98
11.7 同步练习98
11.8 动手实践:使用字典推导式98
第12章 函数与函数式编程99
12.1 定义函数99
12.2 函数参数
12.2.1 使用关键字参数调用函数
12.2.2 参数默认值
12.2.3 单星号(*)可变参数
12.2.4 双星号(**)可变参数
12.3 函数返回值
12.3.1 无返回值函数
12.3.2 多返回值函数
12.4 函数变量作用域
12.5 生成器
12.6 嵌套函数
12.7 函数式编程基础
12.7.1 高阶函数与函数类型
12.7.2 函数作为其他函数返回值使用
12.7.3 函数作为其他函数参数使用
12.7.4 匿名函数与lambda表达式
12.8 函数式编程的三大基础函数
12.8.1 过滤函数filter()
12.8.2 映射函数map()
12.8.3 聚合函数reduce()
12.9 装饰器
12.9.1 一个没有使用装饰器的示例
12.9.2 使用装饰器
12.9.3 同时使用多个装饰器
12.9.4 给装饰器传递参数
12.10 本章小结
12.11 同步练习
Python10从小白到大牛(第2版)
12.12 动手实践:找出素数
第13章 面向对象编程.
13.1 面向对象概述
13.2 面向对象三个基本特性
13.2.1 封装性
13.2.2 继承性
13.2.3 多态性
13.3 类和对象
13.3.1 定义类
13.3.2 创建和使用对象
13.3.3 实例变量
13.3.4 类变量
13.3.5 构造方法
13.3.6 实例方法
13.3.7 类方法
13.3.8 静态方法
13.4 封装性
13.4.1 私有变量
13.4.2 私有方法
13.4.3 定义属性
13.5 继承性
13.5.1 继承概念
13.5.2 重写方法
13.5.3 多继承
13.6 多态性
13.6.1 多态概念
13.6.2 类型检查
13.6.3 鸭子类型
13.7Python根类——object
13.7.1__str__()方法
13.7.2 对象比较方法
13.8 本章小结
13.9 同步练习
13.10 动手实践:设计多继承骡子类
第14章 异常处理.
14.1一个异常示例
14.2异常类继承层次
14.3常见异常
目录11
14.3.1AttributeError异常
14.3.2OSError异常
14.3.3IndexError异常
14.3.4KeyError异常
14.3.5NameError异常
14.3.6TypeError异常
14.3.7ValueError异常
14.4捕获异常
14.4.1try-except语句
14.4.2多个except代码块
14.4.3try-except语句嵌套
14.4.4多重异常捕获
14.5异常堆栈跟踪
14.6释放资源
14.6.1finally代码块
14.6.2else代码块
14.6.3withas代码块自动资源管理
14.7自定义异常类
14.8显式抛出异常
14.9本章小结
14.10同步练习
14.11动手实践:释放资源
第15章 常用模块.
15.1math模块
15.1.1舍入函数
15.1.2幂和对数函数
15.1.3三角函数
15.2random模块
15.3datetime模块
15.3.1datetime、date和time类
15.3.2日期时间计算
15.3.3日期时间格式化和解析
15.3.4时区
15.4本章小结
15.5同步练习
15.6动手实践:输入与转换日期
第16章 正则表达式.
16.1正则表达式中的字符
Python12从小白到大牛(第2版)
16.1.1元字符
16.1.2字符转义
16.1.3开始与结束字符
16.2字符类
16.2.1定义字符类
16.2.2字符类取反
16.2.3区间
16.2.4预定义字符类
16.3量词
16.3.1使用量词
16.3.2贪婪量词和懒惰量词
16.4分组
16.4.1定义分组
16.4.2命名分组
16.4.3反向引用分组
16.4.4非捕获分组
16.5re模块中重要函数
16.5.1search()和match()函数
16.5.2findall()和finditer()函数
16.5.3字符串分割
16.5.4字符串替换
16.6编译正则表达式
16.6.1已编译正则表达式对象
16.6.2编译标志
16.7本章小结
16.8同步练习
16.9动手实践:找出HTML中的图片
第17章 文件操作与管理.
17.1文件操作
17.1.1打开文件
17.1.2关闭文件
17.1.3文本文件读写
17.1.4二进制文件读写
17.2os模块
17.3os.path模块
17.4本章小结
17.5同步练习
17.6动手实践:读写日期
目录13
第三篇 Python常用库与框架
第18章 数据交换格式.
18.1XML数据交换格式
18.1.1XML文档结构
18.1.2解析XML文档
18.1.3使用XPath
18.2JSON数据交换格式
18.2.1JSON文档结构
18.2.2JSON数据编码
18.2.3JSON数据解码
18.3本章小结
18.4同步练习
18.5动手实践:解析结构化文档
第19章 数据库编程.
19.1数据持久化技术概述
19.2MySQL数据库管理系统
19.2.1数据库安装和配置
19.2.2登录服务器
19.2.3常见的管理命令
19.3PythonDB-API
19.3.1建立数据库连接
19.3.2创建游标
19.4实例:User表CRUD操作
19.4.1安装PyMySQL库
19.4.2数据库编程一般过程
19.4.3数据查询操作
19.4.4数据修改操作
19.5NoSQL数据存储
19.5.1dbm数据库的打开和关闭
19.5.2dbm数据存储
19.6本章小结
19.7同步练习
19.8动手实践:从结构化文档迁移数据到数据库
第20章 网络编程.
20.1网络基础
20.1.1网络结构
20.1.2TCP/IP
Python14从小白到大牛(第2版)
20.1.3IP地址
20.1.4端口
20.2TCPSocket低层次网络编程
20.2.1TCPSocket通信概述
20.2.2TCPSocket通信过程
20.2.3TCPSocket编程API
20.2.4实例:简单聊天工具
20.2.5实例:文件上传工具
20.3UDPSocket低层次网络编程.
20.3.1UDPSocket编程API
20.3.2实例:简单聊天工具
20.3.3实例:文本文件上传工具
20.4访问互联网资源
20.4.1URL概念
20.4.2HTTP/HTTPS
20.4.3搭建自己的Web服务器
20.4.4使用urllib库
20.4.5发送GET请求
20.4.6发送POST请求
20.4.7实例:图片下载器
20.5本章小结
20.6同步练习
20.7动手实践:解析来自Web的结构化数据
第21章 wxPython图形用户界面编程
21.1Python图形用户界面开发工具包
21.2wxPython安装
21.3wxPython基础
21.3.1wxPython类层次结构
21.3.2第一个wxPython程序
21.3.3wxPython界面构建层次结构
21.3.4界面设计工具
21.4事件处理
21.4.1一对一事件处理
21.4.2一对多事件处理
21.5布局管理
21.5.1不要使用绝对布局
21.5.2Sizer布局管理器
21.5.3Box布局器
21.5.4StaticBox布局
目录15
21.5.5Grid布局
21.5.6FlexGrid布局
21.6wxPython基本控件
21.6.1静态文本和按钮
21.6.2文本输入控件
21.6.3复选框
21.6.4单选按钮
21.6.5下拉列表
21.6.6列表
21.6.7静态图片控件
21.7实例:图书信息网格
21.8本章小结
21.9同步练习
21.10动手实践:展示Web数据
第22章 Python多线程编程.
22.1基础知识
22.1.1进程
22.1.2线程
22.2使用threading模块
22.3创建线程
22.3.1自定义函数作为线程体
22.3.2继承Thread线程类实现线程体
22.4线程管理
22.4.1等待线程结束
22.4.2线程停止
22.5线程安全
22.5.1临界资源问题
22.5.2多线程同步
22.6线程间通信
22.6.1使用Condition实现线程间通信
22.6.2使用Event实现线程间通信
22.7本章小结
22.8同步练习
22.9动手实践:网络爬虫
第四篇 Python项目实战
第23章 项目实战1:网络爬虫技术——爬取搜狐证券股票数据
23.1网络爬虫技术概述
Python16从小白到大牛(第2版)
23.1.1网络通信技术
23.1.2多线程技术
23.1.3数据交换技术
23.1.4Web前端技术
23.1.5数据解析技术
23.1.6数据存储技术
23.2爬取数据
23.2.1网页中静态和动态数据
23.2.2使用urllib爬取数据
23.2.3使用Selenium爬取数据
23.3解析数据
23.3.1使用正则表达式
23.3.2使用BeautifulSoup库
23.4项目实战:爬取搜狐网股票数据
23.4.1爬取并解析数据
23.4.2检测数据是否更新
23.4.3保存数据到数据库
23.4.4爬虫工作计划任务
第24章 项目实战2:数据分析技术——贵州茅台股票数据分析
24.1数据分析过程
24.1.1数据收集
24.1.2数据存储
24.1.3数据清洗
24.1.4数据分析
24.1.5数据可视化
24.2数据分析工具环境搭建和使用
24.2.1安装Jupyter
24.2.2使用IPythonShell
24.2.3使用JupyterNotebook
24.3数据分析与科学计算基础库——NumPy
24.3.1NumPy库安装
24.3.2NumPy中的多维数组对象
24.3.3NumPy数组的数据类型
24.3.4数组的属性
24.3.5数组的轴
24.3.6访问一维数组中的元素
24.3.7访问二维数组中的元素
24.4数据分析必备库——pandas
24.4.1pandas库安装
目录17
24.4.2Series数据结构
24.4.3DataFrame数据结构
24.5项目实战:贵州茅台股票数据分析
24.5.1从数据库中读取股票历史数据
24.5.2获得特定时间段股票交易数据
24.5.3查询时间段内最大成交量
24.5.4查询时间段内总成交量
24.5.5按照成交金额排序
第25章 项目实战3:数据可视化技术——贵州茅台股票数据可视化
25.1使用Matplotlib绘制图表
25.1.1安装Matplotlib
25.1.2图表基本构成要素
25.1.3绘制折线图
25.1.4绘制柱状图
25.1.5绘制饼状图
25.1.6绘制散点图
25.1.7绘制子图表
25.2项目实战:贵州茅台股票数据可视化
25.2.1从数据库读取股票数据
25.2.2绘制股票成交量折线图
25.2.3绘制股票OHLC图
25.2.4绘制股票K线图
第26章 项目实战4:计算机视觉技术——网站验证码识别
26.1人工智能
26.2计算机视觉
26.2.1计算机视觉的Python语言相关库
26.2.2色彩空间
26.3使用OpenCV库
26.3.1安装OpenCV库
26.3.2读取和显示图像
26.3.3调整图像大小
26.3.4图像旋转
26.3.5绘制几何图形
26.3.6图像的灰度化
26.3.7图像的二值化与阈值
26.3.8人脸检测
26.4项目实战:网站验证码识别
26.4.1验证码
Python18从小白到大牛(第2版)
26.4.2验证码识别
26.4.3安装OCR引擎Tesseract
26.4.4安装pytesseract库
26.4.5安装pillow库
26.4.6验证码识别代码实现
第27章 项目实战5:PythonWebFlask框架——PetStore宠物商店项目
27.1Web应用程序概述
27.1.1HTTP/HTTPS
27.1.2B/S网络架构
27.1.3Web前端技术
27.2Flask框架介绍
27.3编写Flask程序
27.3.1安装Flask
27.3.2第一个Flask程序
27.3.3路由
27.4Jinja2模板
27.4.1没有使用模板
27.4.2使用模板
27.4.3模板中使用表达式
27.4.4模板中使用语句
27.4.5模板中访问静态文件
27.5处理HTTP操作
27.5.1使用request请求对象
27.5.2使用response响应对象
27.5.3使用session对象
27.6PetStore宠物商店项目——需求与设计
27.6.1项目概述
27.6.2需求分析
27.6.3原型设计
27.6.4数据库设计
27.6.5架构设计
27.6.6系统设计
27.7PetStore宠物商店项目——创建数据库
27.7.1安装和配置MySQL数据库
27.7.2编写数据库DDL脚本
27.7.3插入初始数据到数据库
27.8PetStore宠物商店项目——创建项目
27.8.1创建项目
27.8.2项目包结构
目录19
27.8.3项目配置文件
27.9PetStore宠物商店项目——数据持久层
27.9.1编写DAO基类
27.9.2用户管理DAO
27.9.3商品管理DAO
27.9.4订单管理DAO
27.9.5订单明细管理DAO
27.10PetStore宠物商店项目——表示层
27.10.1启动模块实现
27.10.2登录页面实现
27.10.3商品列表
27.10.4添加商品到购物车
27.10.5查看购物车
27.10.6提交订单
第28章 项目实战6:Python综合技术——QQ聊天工具开发
28.1系统分析与设计
28.1.1项目概述
28.1.2需求分析
28.1.3原型设计
28.1.4数据库设计
28.1.5网络拓扑图
28.1.6系统设计
28.2任务1:创建服务器端数据库
28.2.1迭代1.1:安装和配置MySQL数据库
28.2.2迭代1.2:编写数据库DDL脚本
28.2.3迭代1.3:插入初始数据到数据库
28.3任务2:创建项目
28.3.1迭代2.1:创建QQ客户端项目
28.3.2迭代2.2:QQ客户端项目中添加资源图片
28.3.3迭代2.3:QQ客户端项目中添加包
28.3.4迭代2.4:创建QQ服务器项目
28.3.5迭代2.5:QQ服务器项目中添加包
28.4任务3:服务器项目数据持久层
28.4.1迭代3.1:服务器端配置文件
28.4.2迭代3.2:编写base_dao模块
28.4.3迭代3.3:编写用户管理DAO类
28.5任务4:QQ客户端项目UI实现
28.5.1迭代4.1:客户端配置文件
28.5.2迭代4.2:编写my_frame模块
Python20从小白到大牛(第2版)
28.5.3迭代4.3:登录窗口实现
28.5.4迭代4.4:好友列表窗口实现
28.5.5迭代4.5:聊天窗口实现
28.6任务5:用户登录过程实现
28.6.1迭代5.1:QQ客户端启动
28.6.2迭代5.2:客户端登录过程实现
28.6.3迭代5.3:QQ服务器端启动
28.6.4迭代5.4:登录过程的服务器端验证
28.7任务6:刷新好友列表
28.7.1迭代6.1:服务器端刷新好友列表
28.7.2迭代6.2:客户端刷新好友列表
28.8任务7:聊天过程实现
28.8.1迭代7.1:客户端用户1向服务器发送消息
28.8.2迭代7.2:服务器端接收用户1消息与转发给用户3消息
28.8.3迭代7.3:客户端用户3接收用户1消息
28.9任务8:用户下线
28.9.1迭代8.1:客户端实现
28.9.2迭代8.2:服务器端实现
样章浏览赠书活动
高校教师(普通高校/职业院校教师)