欢迎来到传智教育旗下图书库

Python实战编程:从零学Python

黑马程序员/编著
定价:¥108.00

出版社:中国铁道出版社

ISBN:978-7-113-24007-3

图书种类:社会图书

出版日期:2018-08

所属学科:Python

页数:661

咨询客服 查看配套资源

关注获取新书发布信息

内容简介

Python发展到现在,经历了多个版本。截止到目前,官网仍然保留的版本主要是基于Python2.x和Python3.x。其中,Python2.x的历史比较悠久,而Python3.x作为主流的趋势,更是受到的很多人的推崇。

本书基于Python3,系统全面的讲解了Python开发的核心知识,通过数以百计的代码片段、交互实例和多个综合案例,能够让读者在深入理解理论的同时,提高相应的项目实践能力,从而适应企业对Python人才的真正需求。全书共25章,大致可以分为3个部分,具体如下:

第1部分:核心语法(第1-13章)

这部分内容占据了大约二分之一的篇幅,讲解了Python程序开发的核心内容,包括基本概念和语句、风格和语法、数据类型、序列类型、映射和集合类型、条件和循环、文件、错误和异常、函数和函数式编程、模块、面向对象编程等,这部分内容是Python开发的必备知识,通过该阶段的学习,读者将具备Python的基础知识,建立面向对象的编程思想。

第2部分:高阶知识(第14-20章)

高阶内容讲解的是诸如内存管理、正则表达式、网络、多线程、图形图形界面,数据库、web等知识。这部分内容旨在帮助读者提高Python编程水平,无论大家以后使用Python开发哪个领域,都会用到这部分内容

 第3部分:项目实战(第21-25章)

这个阶段讲解了井字棋、贪吃蛇、飞机大战、多人聊天室、天天生鲜这5个项目,其中,井字棋、贪吃蛇、飞机大战这三个项目是对第一部分核心语法知识的综合应用,多人聊天室是对高阶知识的综合应用、天天生鲜这个项目是借用Django框架开发的一个电商项目,含金量非常高。在讲解项目实战的过程中,我们首先介绍的是项目背景和实现目标,然后阐述项目的分析方法和过程,最后按照项目的构建顺序完成项目开发,这样编排的目的,不仅是让大家增加项目经验,更是为了加深读者对项目开发的理解。

适合群体

本课程适合0基础或具有一定Python基础,想要快速提升且深入学习Python开发的人员使用。

图书特色

Python发展到现在,经历了多个版本。截止到目前,官网仍然保留的版本主要是基于Python2.x和Python3.x。其中,Python2.x的历史比较悠久,而Python3.x作为主流的趋势,更是受到的很多人的推崇。

本书基于Python3,系统全面的讲解了Python开发的核心知识,通过数以百计的代码片段、交互实例和多个综合案例,能够让读者在深入理解理论的同时,提高相应的项目实践能力,从而适应企业对Python人才的真正需求。全书共25章,大致可以分为3个部分,具体如下:

第1部分:核心语法(第1-13章)

这部分内容占据了大约二分之一的篇幅,讲解了Python程序开发的核心内容,包括基本概念和语句、风格和语法、数据类型、序列类型、映射和集合类型、条件和循环、文件、错误和异常、函数和函数式编程、模块、面向对象编程等,这部分内容是Python开发的必备知识,通过该阶段的学习,读者将具备Python的基础知识,建立面向对象的编程思想。

第2部分:高阶知识(第14-20章)

高阶内容讲解的是诸如内存管理、正则表达式、网络、多线程、图形图形界面,数据库、web等知识。这部分内容旨在帮助读者提高Python编程水平,无论大家以后使用Python开发哪个领域,都会用到这部分内容

 第3部分:项目实战(第21-25章)

这个阶段讲解了井字棋、贪吃蛇、飞机大战、多人聊天室、天天生鲜这5个项目,其中,井字棋、贪吃蛇、飞机大战这三个项目是对第一部分核心语法知识的综合应用,多人聊天室是对高阶知识的综合应用、天天生鲜这个项目是借用Django框架开发的一个电商项目,含金量非常高。在讲解项目实战的过程中,我们首先介绍的是项目背景和实现目标,然后阐述项目的分析方法和过程,最后按照项目的构建顺序完成项目开发,这样编排的目的,不仅是让大家增加项目经验,更是为了加深读者对项目开发的理解。

配套资源
图书目录
第1章	开启Python学习之旅
1.1	Python的由来
1.2	Python的特点
1.2.1	简单易学
1.2.2	开源
1.2.3	高级语言
1.2.4	可移植性
1.2.5	解释型
1.2.6	面向对象
1.2.7	可扩展性和可嵌入性
1.2.8	丰富的库
1.2.9	规范的代码
1.3	Python应用领域
1.3.1	Web应用开发
1.3.2	管理操作系统、服务器自动化运维
1.3.3	科学计算

1.3.4	桌面软件
1.3.5	服务器软件(网络软件)
1.3.6	游戏

1.3.7	构思实现,产品早期原型和迭代
1.4	Python版本及解释器
1.4.1	Python的版本过渡
1.4.2	Python 2和Python 3的区别
1.4.3	Python解释器
1.5	下载和安装Python
1.5.1	Linux平台
1.5.2	Windows平台
1.5.3	Mac平台
1.6	第一个Python程序——HelloWorld
1.6.1	Python命令行
1.6.2	写一段小程序
1.6.3	脚本
1.7	运行Python
1.7.1	命令行上的交互式解释器
1.7.2	从命令行启动脚本
1.7.3	增强交互式IPython
1.7.4	集成开发环境
1.7.5 PyCharm的下载安装
1.7.6 PyCharm的使用
1.8	Python程序执行原理
1.8.1	编译型语言和解释型语言
1.8.2	Python是一种解释型语言
1.9	Python文档

第2章Python快速入门
2.1程序的输入和输出
2.1.1程序的输出
2.1.2程序的输入
2.2 Python注释
2.2.1行注释和块注释
2.2.2文档字符串
2.3代码风格建议
2.3.1 使用缩进表示语句块
2.3.2 关于缩进风格
2.3.3 代码过长的换行
2.4标识符和关键字
2.4.1标识符
2.4.2关键字
2.5 变量
2.5.1变量和赋值
2.5.2复用变量名
2.6 数字类型
2.7 布尔类型
2.8 字符串
2.9 元组和列表
2.10字典
2.11集合(set)
2.12	if语句
2.13 while循环
2.14 for循环
2.15迭代类型
2.16文件读写
2.17错误和异常
2.18函数
2.19类和对象
2.20模块


第3章  数值类型
3.1 整型
3.1.1早期的整型
3.1.2 Python3中的整型
3.1.3 整型的表示方法
3.1.4 进制转换
3.2位运算
3.2.1整型存储方式
3.2.2按位取反
3.2.3按位左移
3.2.4按位右移
3.2.5按位与
3.2.6按位或
3.2.7按位异或
3.3 浮点型
3.3.1浮点型的表示方式
3.3.2浮点型的取值范围
3.3.3浮点型的存储
3.3.4高精度浮点数
3.4复数类型
3.4.1复数类型定义
3.4.2复数的特点
3.4.3创建复数
3.4.4获取复数的实部和虚部
3.5布尔类型是一种特殊整型
3.6数字运算
3.6.1算术运算符
3.6.2赋值运算符
3.6.3比较运算符
3.6.4逻辑运算符
3.7运算符优先级
3.8类型转换
3.8.1类型转换函数
3.8.2类型转换注意事项
3.8.3类型转换示例
3.9对象和引用
3.9.1对象
3.9.2引用
3.9.3身份运算符
3.9.4身份运算符的使用

第4章 字符串
4.1字符串介绍
4.2字符串存储方式
4.2.1字符串的索引
4.2.2根据索引访问值
4.2.3字符串是不可变的
4.3 切片截取字符串
4.3.1切片和步长
4.3.2切片的默认值
4.3.3切片的正反向索引混用
4.4 特殊字符处理
4.4.1字符串的转义
4.4.2保持原始字符串
4.5字符串的输出和输入
4.5.1字符串的格式化输出
4.5.2格式化操作的辅助指令
4.5.3字符串的输入
4.6 字符串模板
4.7 字符串的内建函数
4.7.2序列类型操作相关函数
4.7.3字符串类型转换相关函数
4.8 字符串的常见方法
4.8.1 find方法
4.8.2 index方法
4.8.3 replace方法
4.8.4 split方法
4.8.5 lower方法
4.8.6 strip方法
4.8.7 format方法
4.9 字符串操作符
4.9.1使用比较运算符比较字符串
4.9.2使用+运算符连接字符串
4.9.3使用成员运算符检查字符串

第5章 序列
5.1认识什么是序列
5.2 通用序列操作
5.2.1 索引([ ])
5.2.2 切片([ i : j ])
5.2.3 步长([ i : j : k])
5.2.4 判断某个元素是否属于序列
5.2.5 序列相加
5.2.6 序列与数字相乘
5.2.7计算序列长度(len)
5.2.8找出序列的最大元素和最小元素(min/max)
5.2.9 查找元素在序列中出现的位置(index)
5.2.10 统计元素在序列中出现的次数(count)
5.5 可变序列——列表(list)
5.5.1什么是列表
5.5.2列表的创建方式
5.5.3列表操作符
5.5.4列表类型相关函数
5.5.5列表类型相关方法
5.6不可变序列——元组
5.6.1元组的创建方式
5.6.2元组支持通用序列操作
5.6.3单个元素的元组
5.6.4有时候元组也“可变”
5.7	元组是无符号对象的默认类型
5.8不同序列的相互转换
5.9 不可变序列——range
5.9.1 range介绍
5.9.2 range支持通用序列操作
5.9.3 range与列表和元组的比较

第6章 流程控制
6.1 if语句
6.1.1 简单if语句
6.1.2条件表达式
6.1.4 多重条件表达式
6.1.3 if-else语句
6.1.4 elif语句
6.1.5 if嵌套语句
6.1.6 if语句的缩进
6.1.7 判断表达式
6.2 循环语句
6.2.1 while循环
6.2.2 while循环嵌套
6.2.2 死循环
6.2.3 for语句
6.2.4 range()函数用于for循环
6.2.5 循环技巧
6.2.6 迭代器和iter()函数
6.2.7 列表推导式
6.3 跳出循环
6.3.1 break语句
6.3.2 continue语句
6.3.3 pass语句
6.3.4 else语句

第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.5删除字典元素和字典
7.3字典常用的函数
7.3.1通过len函数获取字典元素的数量
7.3.2通过hash()函数判断某个对象是否能为字典的键
7.4字典的内建方法
7.4.1 copy ()方法
7.4.2 get()方法
7.4.3 items()方法
7.4.4 keys()方法
7.4.5 values()方法
7.5集合类型
7.5.1集合的基本概念
7.5.2集合的类型
7.6集合的基本操作
7.6.1集合的创建和赋值
7.6.2访问集合中的元素
7.6.3更新集合中的元素
7.6.4删除集合本身
7.7集合操作符
7.7.1标准类型的操作符
7.7.2集合类型的操作符
7.7.3可变集合类型的操作符
7.8集合内建方法

第8章 函数和函数式编程
8.1 认识函数
8.2 函数的定义和调用
8.2.1函数的定义
8.2.2函数的调用
8.2.3函数文档说明
8.2.3形参和实参
8.2.4传递参数值的改变
8.2.5 return语句
8.2.6返回值的类型
8.3 函数的参数传递
8.3.1位置参数传递
8.3.2关键字参数传递
8.3.3参数默认值
8.3.4可变参数
8.3.6解包裹
8.3.7混合传递方式
8.4递归函数
8.5函数作为参数传递
8.6 lambda匿名函数
8.7 常用函数
8.6.2 map函数
8.6.3 filter函数
8.6.4 reduce函数
8.6 变量作用域
8.6.1全局变量和局部变量
8.6.2 global和nonlocal关键字
8.7 闭包
8.7.1 函数的引用
8.7.2 什么是闭包
8.7.3 闭包的使用
8.8装饰器
8.8.1什么是装饰器
8.8.2多个装饰器
8.8.3装饰器对有参数函数进行装饰
8.8.4装饰器对带有返回值的函数进行装饰
8.8.5通用装饰器
8.8.6带有参数的装饰器
8.9生成器
8.9.1什么是生成器
8.9.2生成器运行机制
8.9.3 yield与return
8.9.4 生成器支持的方法
8.9.5生成器应用场景——协程
8.9.6生成器是一个迭代器
8.10 Python标准库——内置函数
8.10.1反过头看看
8.10.2数学运算相关函数
8.10.3类型转换相关函数
8.10.4序列操作相关函数
8.10.5类、对象、属性相关函数
8.10.6编译,执行相关函数
8.10.7其他函数

第9章 文件
9.1文件的打开和关闭
9.1.1打开文件
9.1.2关闭文件
9.2文件概述
9.2.1路径名
9.2.2打开模式
9.2.3文件缓冲
9.2.4文件的分类
9.2.5标准文件
9.3文件的读写
9.3.1写文件
9.3.2读文件
9.3.3文件读写位置
9.4文件的方法和属性
9.5文件遍历
9.5.1read()遍历文件
9.5.2readline()遍历文件
9.5.3readlines()遍历文件
9.5.4文件迭代器
9.5.5文件迭代器的特点
9.6文件备份
9.7文件重命名
9.8删除文件
9.9	os模块扩展
9.9.1创建文件夹
9.9.2删除文件夹
9.9.3获取当前目录
9.9.4更改默认目录
9.9.5获取目录列表
9.10文件操作案例——用户登陆
9.10.1业务逻辑
9.10.2相关文件
9.10.3模块功能
9.10.4功能实现
9.10.5功能演示

第10章 面向对象(上)
10.1 面向对象的概念
10.2 类和对象
10.3 类的定义和使用
10.3.1 类的定义
10.3.2 创建对象
10.3.3 新式类和经典类
10.4 属性和方法
10.4.1 类属性
10.4.2 对象属性
10.4.3 构造方法和析构方法
10.4.4 对象方法
10.4.5 类方法
10.4.6 静态方法
10.4.6 私有属性和私有方法
10.4.7 保护对象的私有属性
10.4.8 更便捷地访问私有属性--使用@property

第11章 面向对象(下)
11.1 面向对象的三大特征
11.2 封装
11.3 继承
11.3.1 单继承
11.3.2 isinstance()和issubclass()函数
11.3.3 多继承
11.3.4 重写
11.3.5 super关键字
11.4 多态
11.5 运算符重载
11.5.1 四则运算重载
11.5.2 索引和分片重载
11.5.3 定制对象的字符串形式
11.6 __new__方法
11.7 单例模式
11.8 工厂模式

第12章 错误和异常
12.1 错误和异常
12.1.1 异常
12.1.2 Python常见异常
12.2 捕获异常
12.2.1 try-except语句
12.2.2 获取异常提示信息
12.2.3 捕获多个异常
12.2.4 捕获所有异常
12.2.5 else子句
12.2.6 finally子句
12.3 抛出异常
12.3.1 raise语句
12.3.2 异常的传递
12.3.3 断言-assert语句
12.4 自定义异常
12.5 with语句处理异常
12.5.1 with语句
12.5.2 上下文管理器
12.5.3 自定义上下文管理器

第13章	模块
13.1什么叫模块
13.2常用标准模块
13.2.1 sys模块
13.2.2 os模块
13.2.3	os.path模块
13.2.4	random模块
13.2.5	time模块
13.3导入模块
13.3.1	import
13.3.2	from…import…
13.3.3	from…import *
13.4	导入方法比较
13.5	自制模块
13.5.1	制作自定义模块
13.5.2	自定义模块的使用
13.5.3	模块搜索路径
13.6	模块属性
13.6.1	__all__属性
13.6.2	__name__属性
13.7	模块导入特性
13.7.1	导入特性概述
13.7.2	导入特性详解
13.8	模块缓存
13.9	Python中的包
13.10	包的导入
13.10.1	import导入
13.10.2	from…import…导入
13.10.3	__init__.py文件
13.11	模块的打包发布
13.11.1	待发布包结构
13.11.2	setup.py文件
13.11.3	模块构建
13.11.4	模块打包
13.12	模块安装

第14章	内存管理
14.1内存管理概述
14.1.1为什么要进行内存管理
14.1.2内存管理的常用机制
14.2引用计数机制
14.2.1引用计数机制概述
14.2.2增加对象的引用
14.2.3减少对象的引用
14.2.4释放对象占用的内存
14.3容器对象引起的循环引用
14.3.1容器对象引用对象
14.3.2对象之间的循环引用
14.4弱引用解决自定义对象的循环引用
14.4.1弱引用概述
14.4.2弱引用处理循环引用
14.5垃圾回收机制
14.5.1垃圾回收机制概述
14.5.5标记清除技术
14.5.6分代回收技术
14.5.2 gc模块概述
14.5.3启动垃圾回收的场景
14.5.4 gc模块自动回收垃圾
14.6内存池机制
14.6.1小整数对象池
14.6.2字符串的intern机制


第15章 正则表达式
15.1	起源与发展
15.2	正则表达式的定义
15.3	字符分类
15.3.1	普通字符
15.3.2	元字符
15.3.3	预定义字符集
15.4	点字符
15.5	位置匹配
15.5.1	行头行尾
15.5.2	单词边界
15.6	多选结构
15.7	字符组
15.7.1	连字符
15.7.2	排除型字符组
15.7.3	元字符与字符组
15.8	重复匹配
15.8.1	可选模式
15.8.2	重复模式
15.9	转义字符
15.10	子组
15.10.1	子组的意义
15.10.2	非捕获子组
15.11	re模块
15.12	预编译
15.13	匹配与搜索
15.13.1	match()
15.13.2	search()
15.14	匹配对象
15.15	全文匹配
15.15.1	findall()
15.15.2	finditer()
15.16	检索替换
15.17	文本分割
15.18	贪婪匹配

第16章 图形用户界面编程
16.1  Tkinter概述
16.1.1 认识Tkinter
16.1.2 开发第一个Tkinter程序
16.2 Tkinter组件概述
16.2.1 Tkinter核心组件
16.2.2标准组件属性
16.2.3组件的属性设置
16.3常用组件介绍
16.3.1按钮组件(Button)
16.3.2标签组件(Label)
16.3.3文本框(Entry)
16.3.4多行文本框(Text)
16.3.5单选按钮(Radiobutton)
16.3.6复选框(Checkbutton)
16.3.7列表框(Listbox)
16.4菜单
16.4.1主菜单
16.4.2下拉菜单
16.4.3弹出菜单
16.5对话框
16.5.1消息对话框(messagebox)
16.5.2文件对话框(filedialog)
16.5.3颜色选择对话框(colorchooser )
16.6画布绘图
16.7 Tkinter几何布局管理器
16.7.1 pack几何布局管理器
16.7.2 grid几何布局管理器
16.7.3 place几何布局管理器
16.8 事件处理
16.8.1 Tkinter中的事件
16.8.2事件对象及属性
16.8.3事件绑定和处理
16.9 其他GUI
16.9.1 wxPython
16.9.2 PyGTK
16.9.3 PyQt
16.9.4JPython


第17章	多任务编程
17.1多任务的实现原理
17.2进程介绍
17.2.1什么是进程
17.2.2进程的状态
17.3通过fork()函数创建进程
17.3.1使用fork()函数创建子进程
17.3.2 使用fork()创建多个子进程
17.4通过Process类创建进程(跨平台)
17.4.1通过Process类实例创建进程
17.4.2使用join方法同步进程
17.4.3通过Process子类创建子进程
17.5进程池批量创建进程
17.5.1 进程池非阻塞式添加任务
17.5.2 进程池阻塞式添加任务
17.6通过subprocess模块创建进程
17.6.1 调用call()函数创建子进程
17.6.2 通过Popen类实例创建子进程
17.7 通过Queue实现进程间的通信
17.7.1 全局变量在多个进程中不共享
17.7.2 使用Queue队列实现进程间通信
17.8 线程介绍
17.8.1什么是线程
17.8.2线程的状态
17.8.3线程类型
17.9 创建线程
17.9.1使用Thread类实现多线程
17.9.2使用Thread子类实现多线程
17.9.3调用join()方法阻塞线程
17.10解决线程共享资源产生的问题
17.10.1线程共享全局变量
17.10.2访问全局变量出现数据不同步的问题
17.10.3通过互斥锁(Lock)解决数据不同步的问题
17.10.4持有多个锁造成死锁的问题
17.10.5使用可重入锁(RLock)避免死锁
17.11线程的同步应用
17.11.1通过条件(Condition)实现线程同步
17.11.2使用队列实现线程同步
17.12使用事件(Event)实现线程通信
17.13后台线程
17.14协程
17.14.1协程的优势
17.14.2 Python2.x的协程
17.14.3 Python3.x的协程

第18章 网络编程
18.1	计算机网络概述
18.2	协议与体系结构
18.2.1	体系结构
18.2.2	协议
18.2.3	数据传输流程
18.3	网络架构
18.4	IP地址
18.4.1	IPv4的分类
18.4.2	IPv6地址
18.4.3	子网掩码
18.5	端口号
18.6	网络编程概述
18.7	套接字
18.8	socket通信流程
18.8.1	面向连接的通信
18.8.2	面向非连接的通信
18.9	socket内建方法
18.9.1	bind—绑定地址到套接字
18.9.2	listen—服务器监听客户端的请求
18.9.3	connect—建立与服务器的连接
18.9.4	accept—接受客户端的连接
18.9.5	send/sendto—发送数据
18.9.6	recv/recvfrom—接收数据
18.9.7	close—关闭套接字
18.10	网络编程实例
18.10.1	UDP聊天室
18.10.2	TCP数据转换
18.11	TCP并发服务器
18.11.1	单进程非阻塞服务器
18.11.2	多进程并发服务器
18.11.3	多线程并发服务器
18.12	I/O多路转接服务器
18.12.1	select并发服务器
18.12.2	epoll并发服务器

第19章 数据库
19.1 MySQL数据库
19.1.1 下载和安装
19.1.2 使用MySQL Workbench
19.1.3 卸载MySQL
19.2 SQL语言
19.3 数据库基本操作
19.3.1 创建数据库
19.3.2 删除数据库
19.4 表的基本操作
19.4.1 字段类型
19.4.2 约束
19.4.3 创建表
19.4.4 删除表
19.5 数据的操作
19.5.1 数据的添加
19.5.2 数据的更新
19.5.3 数据的删除
19.5.4 事务
19.6 单表查询
19.6.1 数据查询
19.6.2 最简单查询
19.6.3 条件查询
19.6.4 查询不重复的记录
19.6.5 聚合查询
19.6.6 分组查询
19.6.7 排序
19.6.8 限制记录数量
19.6.9	完整的SQL语句
19.7	多表查询
19.7.1 内连接(inner join)
19.7.2 外连接(outer join)
19.8 MySQL的内置函数
19.8.1 字符串函数
19.8.2 数学函数
19.8.3 日期时间函数
19.8.4 类型转换函数
19.9 MySQL与Python交互
19.9.1 安装PyMySQL
19.9.2 PyMySQL的常用对象
19.9.3 PyMySQL示例

第20章 Web编程
20.1	什么是Web服务器
20.2	第一个Web服务器
20.3	统一资源定位符
20.4	HTTP概述
20.5	HTTP消息
20.5.1	请求结构
20.5.2	响应结构
20.5.3	HTTP请求方法
20.5.4	状态码
20.6	HTML概述
20.6.1	静态网页
20.6.2	CSS简介
20.6.3	JavaScript简介
20.7	静态Web服务器
20.8	WSGI规范
20.9	WSGI服务器
20.10	Web服务器
20.11	基于框架的服务器
20.11.1	Web应用框架
20.11.2	基于框架的服务器
20.11.3	流程分析
20.11.4	功能展示

第21章 井字棋
21.1 游戏简介
21.1.1 游戏规则
21.1.2 游戏策略
21.2分析与设计
21.2.1 流程分析
21.2.2 类的设计
21.2.3 开发阶段设计
21.3 新建项目及文件准备
21.4 棋盘功能实现
21.4.1 棋盘的数据结构
21.4.2 初始化棋盘
21.4.3 显示棋盘
21.4.4 在棋盘上落子
21.4.5 判断平局
21.4.6 判断胜利
21.4.7 重置棋盘
21.5 玩家功能实现
21.5.1 初始化玩家
21.5.2 玩家在棋盘落子
21.6 人人对战功能实现
21.6.1 游戏的初始化
21.6.2 随机决定先手玩家
21.6.3 一轮完整对局
21.6.4 循环对局
21.7 人机对战—电脑随机落子
21.7.1 派生AIPlayer子类
21.7.2 修改游戏类中电脑玩家的类型
21.8 人机对战—电脑智能落子
21.8.1 电脑落子策略
21.8.2 预判胜利
21.8.3 必胜落子和必救落子
21.8.4 评估子力价值
21.9 项目体会


第22章 贪吃蛇
22.1 游戏简介
22.1.1 简易版贪吃蛇
22.1.2 游戏规则
22.2 类和模块的设计
22.2.1 类的设计
22.2.2 模块的设计
22.3 游戏准备工作
22.3.1 新建项目
22.3.2 安装pygame库
22.4 游戏框架搭建
22.4.1 pygame初始化和退出
22.4.2 创建游戏主窗口
22.4.3 增加游戏循环和游戏时钟
22.4.4 填充窗口的背景颜色
22.4.5 绘制得分文本
22.4.6 重置得分文本的位置
22.4.7 游戏事件监听
22.4.8 绘制食物图形
22.4.9 定时更新食物的位置
22.5 贪吃蛇功能实现
22.5.1 贪吃蛇类的设计
22.5.2 定义贪吃蛇类
22.5.3 添加蛇身体
22.5.4 绘制和移动身体
22.5.5 改变贪吃蛇的方向
22.5.6 贪吃蛇吃食物
22.5.7 贪吃蛇的死亡
22.6 项目体会

第23章 飞机大战
23.1 游戏简介
23.1.1 经典飞机大战
23.1.2 增强版飞机大战游戏特点
23.1.3 增强版飞机大战游戏设计
23.1.3 增强版飞机大战典型场景
23.2 项目准备
23.2.1 类设计
23.2.2 模块设计
23.2.4 创建项目和项目文件结构
23.3 游戏框架搭建
23.3.1 游戏类的设计
23.3.2 游戏框架搭建
23.4 精灵和精灵组
23.4.1 介绍Sprite和Group
23.4.2 派生游戏精灵子类
23.4.3 绘制游戏背景和英雄飞机
23.4.4 实现游戏背景连续滚动
23.5 指示器面板
23.5.1 指示器面板类的设计
23.5.2 指示器面板类的准备
23.5.3 使用精灵实现文本标签
23.5.4 显示和修改游戏数据
23.5.5 保存和显示最好成绩
23.5.6 显示游戏状态
23.5.7 游戏结束后重置面板
23.6 逐帧动画和飞机类
23.6.1 逐帧动画的基本实现
23.6.2 飞机类的设计与实现
23.6.3 派生敌机子类
23.6.4 派生英雄飞机子类
23.7 碰撞检测
23.7.1 pygame中的碰撞检测
23.7.2 敌机撞毁英雄
23.7.3 英雄发射子弹
23.7.4 英雄拾取道具
23.8 音乐和音效
23.8.1 pygame播放音乐和音效的方式
23.8.2 设计并实现音乐播放器类
23.9 项目体会

第24章 多人聊天室
24.1 项目介绍
24.1.1 项目概述
24.1.2 项目预览
24.1.3 项目的总体流程
24.2 服务器端程序设计
24.2.1 业务流程设计
24.2.2 响应协议设计
24.2.3 类和模块设计
24.2.4 数据库设计
24.3 服务器端程序实现
24.3.1 创建项目和文件结构
24.3.2 实现ServerSocket类
24.3.3 实现SocketWrapper类
24.3.4 实现DB类
24.3.5 实现ResponseProtocol类
24.3.6 实现Server类-主框架搭建
24.3.7 实现Server类-请求处理
24.3.8 实现Server类-请求协议与处理方法的对应关系
24.3.9 启动服务器端程序
24.4 客户端程序设计
24.4.1 业务流程设计
24.4.2 请求协议设计
24.4.3 类和模块设计
24.5 客户端程序实现
24.5.1 创建项目和文件结构
24.5.2 搭建登录窗口
24.5.3 搭建聊天窗口
24.5.4 实现RequestProtocol类
24.5.5 实现ClientSocket类
24.5.6 实现Client类-业务框架搭建
24.5.7 实现Client类-响应处理方法
24.5.8 实现Client类-窗口按钮点击事件处理
24.5.9 启动客户器端程序
24.6 项目体会
第25章 大型购物网站—天天生鲜
25.1 Django框架介绍
25.1.1 使用Django建立网站的优势
25.1.2 Django框架的结构
25.2 天天生鲜项目展示
25.2.1 首页商品展示页面
25.2.2 商品分类展示页面
25.2.3 商品详情页面
25.2.4 购物车页面
25.2.5 订单提交页面
25.2.6 订单提交成功页面
25.3 项目创建
25.3.1 搭建开发环境
25.3.2 创建项目
25.3.3 创建应用
25.3.4 开发服务器
25.4创建模型
25.4.1 ORM 概述
25.4.2 数据库配置
25.4.3 定义模型类
25.4.4 创建迁移文件
25.4.5 执行迁移
25.4.6 数据库操作
25.5 创建视图
25.5.1 定义视图
25.5.2 配置URLconf
25.6 模板渲染
25.6.1 配置模板
25.6.2 使用模板
25.6.3 给模板传值
25.6.4 静态文件
25.7 Cookie
25.8 首页页面功能实现
25.8.1 创建视图函数
25.8.2 创建模板文件
25.8.3 配置访问路径
25.9 商品详细页面功能实现
25.9.1 创建视图函数
25.9.2 创建模板文件
25.9.3 配置访问路径
25.9.4 实现商品购买功能
25.10 商品分类页面功能实现
25.10.1 创建视图函数
25.10.2 创建模板文件
25.10.3 配置访问路径
25.11 购物车页面功能实现
25.11.1 创建视图函数
25.11.2 创建模板文件
25.11.3 配置访问路径
25.11.4 实现删除商品的功能
25.12 订单提交页面功能实现
25.12.1 创建视图函数
25.12.2 创建模板文件
25.12.3 配置访问路径
25.12.4 实现提交订单功能
25.13 订单提交成功页面功能实现
25.13.1 创建视图函数
25.13.2 配置访问路径
25.14 项目体会
展开全部内容

热销图书推荐

ECharts数据可视化

人民邮电出版社

定价:¥59.80 咨询客服

Python快速编程入门(第3版)

人民邮电出版社

定价:¥59.80 咨询客服

Bootstrap响应式Web开发(第2版)

人民邮电出版社

定价:¥59.80 咨询客服

Spring Cloud微服务架构开发(第2版)

人民邮电出版社

定价:¥59.80 咨询客服