Python编程:从入门到实践
说明
最后一章没有看,这块属于云平台部署,有时间可以看一看。
开始时间
- start time : 20210622
- end time : 20210705
目录
- 第一部分 基础知识
- 第1章 起步
- 1.1 搭建编程环境
- 1.1.1 Python 2和Python 3
- 1.1.2 运行Python代码片段
- 1.1.3 Hello World程序
- 1.2 在不同操作系统中搭建Python编程环境
- 1.2.1 在Linux系统中搭建Python编程环境
- 1.检查Python版本
- 2.安装文本编辑器
- 3.运行Hello World程序
- 4.在终端会话中运行Python代码
- 1.2.2 在OS X系统中搭建Python编程环境
- 1.检查是否安装了Python
- 2.在终端会话中运行Python代码
- 3.安装文本编辑器
- 4.配置Sublime Text使其使用Python 3
- 5.运行Hello World程序
- 1.2.3 在Windows系统中搭建Python编程环境
- 1.安装Python
- 2.启动Python终端会话
- 3.在终端会话中运行Python
- 4.安装文本编辑器
- 5.配置Geany
- 6.运行Hello World程序
- 1.2.1 在Linux系统中搭建Python编程环境
- 1.3 解决安装问题
- 1.4 从终端运行Python程序
- 1.4.1 在Linux和OS X系统中从终端运行Python程序
- 1.4.2 在Windows系统中从终端运行Python程序
- 1.5 小结
- 1.1 搭建编程环境
- 第2章 变量和简单数据类型
- 2.1 运行hello_world.py时发生的情况
- 2.2 变量
- 2.2.1 变量的命名和使用
- 2.2.2 使用变量时避免命名错误
- 2.3 字符串
- 2.3.1 使用方法修改字符串的大小写
- 2.3.2 合并(拼接)字符串
- 2.3.3 使用制表符或换行符来添加空白
- 2.3.4 删除空白
- 2.3.5 使用字符串时避免语法错误
- 2.3.6 Python 2中的print语句
- 2.4 数字
- 2.4.1 整数
- 2.4.2 浮点数
- 2.4.3 使用函数str()避免类型错误
- 2.4.4 Python 2中的整数
- 2.5 注释
- 2.5.1 如何编写注释
- 2.5.2 该编写什么样的注释
- 2.6 Python之禅
- 2.7 小结
- 第3章 列表简介
- 3.1 列表是什么
- 3.1.1 访问列表元素
- 3.1.2 索引从0而不是1开始
- 3.1.3 使用列表中的各个值
- 3.2 修改、添加和删除元素
- 3.2.1 修改列表元素
- 3.2.2 在列表中添加元素
- 1.在列表末尾添加元素
- 2.在列表中插入元素
- 3.2.3 从列表中删除元素
- 1.使用del语句删除元素
- 2.使用方法pop()删除元素
- 3.弹出列表中任何位置处的元素
- 4.根据值删除元素
- 3.3 组织列表
- 3.3.1 使用方法sort()对列表进行永久性排序
- 3.3.2 使用函数sorted()对列表进行临时排序
- 3.3.3 倒着打印列表
- 3.3.4 确定列表的长度
- 3.4 使用列表时避免索引错误
- 3.5 小结
- 3.1 列表是什么
- 第4章 操作列表
- 4.1 遍历整个列表
- 4.1.1 深入地研究循环
- 4.1.2 在for循环中执行更多的操作
- 4.1.3 在for循环结束后执行一些操作
- 4.2 避免缩进错误
- 4.2.1 忘记缩进
- 4.2.2 忘记缩进额外的代码行
- 4.2.3 不必要的缩进
- 4.2.4 循环后不必要的缩进
- 4.2.5 遗漏了冒号
- 4.3 创建数值列表
- 4.3.1 使用函数range()
- 4.3.2 使用range()创建数字列表
- 4.3.3 对数字列表执行简单的统计计算
- 4.3.4 列表解析
- 4.4 使用列表的一部分
- 4.4.1 切片
- 4.4.2 遍历切片
- 4.4.3 复制列表
- 4.5 元组
- 4.5.1 定义元组
- 4.5.2 遍历元组中的所有值
- 4.5.3 修改元组变量
- 4.6 设置代码格式
- 4.6.1 格式设置指南
- 4.6.2 缩进
- 4.6.3 行长
- 4.6.4 空行
- 4.6.5 其他格式设置指南
- 4.7 小结
- 4.1 遍历整个列表
- 第5章 if语句
- 5.1 一个简单示例
- 5.2 条件测试
- 5.2.1 检查是否相等
- 5.2.2 检查是否相等时不考虑大小写
- 5.2.3 检查是否不相等
- 5.2.4 比较数字
- 5.2.5 检查多个条件
- 1.使用and检查多个条件
- 2.使用or检查多个条件
- 5.2.6 检查特定值是否包含在列表中
- 5.2.7 检查特定值是否不包含在列表中
- 5.2.8 布尔表达式
- 5.3 if语句
- 5.3.1 简单的if语句
- 5.3.2 if-else语句
- 5.3.3 if-elif-else结构
- 5.3.4 使用多个elif代码块
- 5.3.5 省略else代码块
- 5.3.6 测试多个条件
- 5.4 使用if语句处理列表
- 5.4.1 检查特殊元素
- 5.4.2 确定列表不是空的
- 5.4.3 使用多个列表
- 5.5 设置if语句的格式
- 5.6 小结
- 第6章 字典
- 6.1 一个简单的字典
- 6.2 使用字典
- 6.2.1 访问字典中的值
- 6.2.2 添加键—值对
- 6.2.3 先创建一个空字典 20210624 10:28
- 6.2.4 修改字典中的值
- 6.2.5 删除键—值对
- 6.2.6 由类似对象组成的字典
- 6.3 遍历字典
- 6.3.1 遍历所有的键—值对
- 6.3.2 遍历字典中的所有键
- 6.3.3 按顺序遍历字典中的所有键
- 6.3.4 遍历字典中的所有值
- 6.4 嵌套
- 6.4.1 字典列表
- 6.4.2 在字典中存储列表
- 6.4.3 在字典中存储字典
- 6.5 小结
- 第7章 用户输入和while循环
- 7.1 函数input()的工作原理
- 7.1.1 编写清晰的程序
- 7.1.2 使用int()来获取数值输入
- 7.1.3 求模运算符
- 7.1.4 在Python 2.7中获取输入
- 7.2 while循环简介
- 7.2.1 使用while循环
- 7.2.2 让用户选择何时退出
- 7.2.3 使用标志
- 7.2.4 使用break退出循环
- 7.2.5 在循环中使用continue
- 7.2.6 避免无限循环
- 7.3 使用while循环来处理列表和字典
- 7.3.1 在列表之间移动元素
- 7.3.2 删除包含特定值的所有列表元素
- 7.3.3 使用用户输入来填充字典
- 7.4 小结
- 7.1 函数input()的工作原理
- 第8章 函数
- 8.1 定义函数
- 8.1.1 向函数传递信息
- 8.1.2 实参和形参
- 8.2 传递实参
- 8.2.1 位置实参
- 1.调用函数多次
- 2.位置实参的顺序很重要
- 8.2.2 关键字实参
- 8.2.3 默认值
- 8.2.4 等效的函数调用
- 8.2.5 避免实参错误
- 8.2.1 位置实参
- 8.3 返回值
- 8.3.1 返回简单值
- 8.3.2 让实参变成可选的
- 8.3.3 返回字典
- 8.3.4 结合使用函数和while循环
- 8.4 传递列表
- 8.4.1 在函数中修改列表
- 8.4.2 禁止函数修改列表
- 8.5 传递任意数量的实参
- 8.5.1 结合使用位置实参和任意数量实参
- 8.5.2 使用任意数量的关键字实参
- 8.6 将函数存储在模块中
- 8.6.1 导入整个模块
- 8.6.2 导入特定的函数
- 8.6.3 使用as给函数指定别名
- 8.6.4 使用as给模块指定别名
- 8.6.5 导入模块中的所有函数
- 8.7 函数编写指南
- 8.8 小结
- 8.1 定义函数
- 第9章 类
- 9.1 创建和使用类
- 9.1.1 创建Dog类
- 1.方法__init__()
- 2.在Python 2.7中创建类
- 9.1.2 根据类创建实例
- 1.访问属性
- 2.调用方法
- 3.创建多个实例
- 9.1.1 创建Dog类
- 9.2 使用类和实例
- 9.2.1 Car类
- 9.2.2 给属性指定默认值
- 9.2.3 修改属性的值
- 1.直接修改属性的值
- 2.通过方法修改属性的值
- 3.通过方法对属性的值进行递增
- 9.3 继承
- 9.3.1 子类的方法__init__()
- 9.3.2 Python 2.7中的继承
- 9.3.3 给子类定义属性和方法
- 9.3.4 重写父类的方法
- 9.3.5 将实例用作属性
- 9.3.6 模拟实物
- 9.4 导入类
- 9.4.1 导入单个类
- 9.4.2 在一个模块中存储多个类
- 9.4.3 从一个模块中导入多个类
- 9.4.4 导入整个模块
- 9.4.5 导入模块中的所有类
- 9.4.6 在一个模块中导入另一个模块
- 9.4.7 自定义工作流程
- 9.5 Python标准库
- 9.6 类编码风格
- 9.7 小结
- 9.1 创建和使用类
- 第10章 文件和异常
- 10.1 从文件中读取数据
- 10.1.1 读取整个文件
- 10.1.2 文件路径
- 10.1.3 逐行读取
- 10.1.4 创建一个包含文件各行内容的列表
- 10.1.5 使用文件的内容
- 10.1.6 包含一百万位的大型文件
- 10.1.7 圆周率值中包含你的生日吗
- 10.2 写入文件
- 10.2.1 写入空文件
- 10.2.2 写入多行
- 10.2.3 附加到文件
- 10.3 异常
- 10.3.1 处理ZeroDivisionError异常
- 10.3.2 使用try-except代码块
- 10.3.3 使用异常避免崩溃
- 10.3.4 else代码块
- 10.3.5 处理FileNotFoundError异常
- 10.3.6 分析文本
- 10.3.7 使用多个文件
- 10.3.8 失败时一声不吭
- 10.3.9 决定报告哪些错误
- 10.4 存储数据
- 10.4.1 使用json.dump()和json.load()
- 10.4.2 保存和读取用户生成的数据
- 10.4.3 重构
- 10.5 小结
- 10.1 从文件中读取数据
- 第11章 测试代码
- 11.1 测试函数
- 11.1.1 单元测试和测试用例
- 11.1.2 可通过的测试
- 11.1.3 不能通过的测试
- 11.1.4 测试未通过时怎么办
- 11.1.5 添加新测试
- 11.2 测试类
- 11.2.1 各种断言方法
- 11.2.2 一个要测试的类
- 11.2.3 测试AnonymousSurvey类
- 11.2.4 方法setUp()
- 11.3 小结
- 11.1 测试函数
- 第1章 起步
- 第二部分 项目
- 项目1 外星人入侵
- 第12章 武装飞船
- 12.1 规划项目
- 12.2 安装Pygame
- 12.2.1 使用pip安装Python包
- 1.在Linux和OS X系统中检查是否安装了pip
- 2.在Windows系统中检查是否安装了pip
- 3.安装pip
- 4.在Linux和OS X系统中安装pip
- 5.在Windows系统中安装pip
- 12.2.2 在Linux系统中安装Pygame
- 12.2.3 在OS X系统中安装Pygame
- 12.2.4 在Windows系统中安装Pygame
- 12.2.1 使用pip安装Python包
- 12.3 开始游戏项目
- 12.3.1 创建Pygame窗口以及响应用户输入
- 12.3.2 设置背景色
- 12.3.3 创建设置类
- 12.4 添加飞船图像
- 12.4.1 创建Ship类
- 12.4.2 在屏幕上绘制飞船 start
- 12.5 重构:模块game_functions
- 12.6 驾驶飞船
- 12.6.1 响应按键
- 12.6.2 允许不断移动
- 12.6.3 左右移动
- 12.6.4 调整飞船的速度
- 12.6.5 限制飞船的活动范围
- 12.6.6 重构check_events()
- 12.7 简单回顾
- 12.7.1 alien_invasion.py
- 12.7.2 settings.py
- 12.7.3 game_functions.py
- 12.7.4 ship.py
- 12.8 射击
- 12.8.1 添加子弹设置
- 12.8.2 创建Bullet类
- 12.8.3 将子弹存储到编组中
- 12.8.4 开火
- 12.8.5 删除已消失的子弹
- 12.8.6 限制子弹数量
- 12.8.7 创建函数update_bullets()
- 12.8.8 创建函数fire_bullet()
- 12.9 小结
- 第13章 外星人
- 13.1 回顾项目
- 13.2 创建第一个外星人
- 13.2.1 创建Alien类
- 13.2.2 创建Alien实例
- 13.2.3 让外星人出现在屏幕上
- 13.3 创建一群外星人
- 13.3.1 确定一行可容纳多少个外星人
- 13.3.2 创建多行外星人
- 13.3.3 创建外星人群
- 13.3.4 重构create_fleet()
- 13.3.5 添加行
- 13.4 让外星人群移动
- 13.4.1 向右移动外星人
- 13.4.2 创建表示外星人移动方向的设置
- 13.4.3 检查外星人是否撞到了屏幕边缘
- 13.4.4 向下移动外星人群并改变移动方向
- 13.5 射杀外星人
- 13.5.1 检测子弹与外星人的碰撞
- 13.5.2 为测试创建大子弹
- 13.5.3 生成新的外星人群
- 13.5.4 提高子弹的速度
- 13.5.5 重构update_bullets()
- 13.6 结束游戏
- 13.6.1 检测外星人和飞船碰撞
- 13.6.2 响应外星人和飞船碰撞
- 13.6.3 有外星人到达屏幕底端
- 13.6.4 游戏结束
- 13.7 确定应运行游戏的哪些部分
- 记分
- 14.1 添加Play按钮
- 14.1.1 创建Button类
- 14.1.2 在屏幕上绘制按钮
- 14.1.3 开始游戏
- 14.1.4 重置游戏
- 14.1.5 将Play按钮切换到非活动状态
- 14.1.6 隐藏光标
- 14.2 提高等级
- 14.2.1 修改速度设置
- 14.2.2 重置速度
- 14.3 记分
- 14.3.1 显示得分
- 14.3.2 创建记分牌
- 14.3.3 在外星人被消灭时更新得分
- 14.3.4 将消灭的每个外星人的点数都计入得分
- 14.3.5 提高点数
- 14.4 小结
- 14.1 添加Play按钮
- 第12章 武装飞船
- 项目2 数据可视化
- 第15章 生成数据
- 15.1 安装matplotlib
- 15.1.1 在Linux系统中安装matplotlib
- 15.1.2 在OS X系统中安装matplotlib
- 15.1.3 在Windows系统中安装matplotlib
- 15.1.4 测试matplotlib
- 15.1.5 matplotlib画廊
- 15.2 绘制简单的折线图
- 15.2.1 修改标签文字和线条粗细
- 15.2.2 校正图形
- 15.2.3 使用scatter()绘制散点图并设置其样式
- 15.2.4 使用scatter()绘制一系列点
- 15.2.5 自动计算数据
- 15.2.6 删除数据点的轮廓
- 15.2.7 自定义颜色
- 15.2.8 使用颜色映射
- 15.2.9 自动保存图表
- 15.3 随机漫步
- 15.3.1 创建RandomWalk()类
- 15.3.2 选择方向
- 15.3.3 绘制随机漫步图
- 15.3.4 模拟多次随机漫步
- 15.3.5 设置随机漫步图的样式
- 15.3.6 给点着色
- 15.3.7 重新绘制起点和终点
- 15.3.8 隐藏坐标轴
- 15.3.9 增加点数
- 15.3.10 调整尺寸以适合屏幕
- 15.4 使用Pygal模拟掷骰子
- 15.4.1 安装Pygal
- 15.4.2 Pygal画廊
- 15.4.3 创建Die类
- 15.4.4 掷骰子
- 15.4.5 分析结果
- 15.4.6 绘制直方图
- 15.4.7 同时掷两个骰子
- 15.4.8 同时掷两个面数不同的骰子
- 15.5 小结
- 15.1 安装matplotlib
- 第16章 下载数据
- 16.1 CSV文件格式
- 16.1.1 分析CSV文件头
- 16.1.2 打印文件头及其位置
- 16.1.3 提取并读取数据
- 16.1.4 绘制气温图表
- 16.1.5 模块datetime
- 16.1.6 在图表中添加日期
- 16.1.7 涵盖更长的时间
- 16.1.8 再绘制一个数据系列
- 16.1.9 给图表区域着色
- 16.1.10 错误检查
- 16.2 制作交易收盘价走势图:JSON格式
- 16.2.1 下载收盘价数据
- 16.2.2 提取相关的数据
- 16.2.3 将字符串转换为数字值
- 16.2.4 绘制收盘价折线图
- 16.2.5 时间序列特征初探
- 16.2.6 收盘价均值
- 16.3 小结
- 16.1 CSV文件格式
- 第17章 使用API
- 17.1 使用Web API
- 17.1.1 Git和GitHub
- 17.1.2 使用API调用请求数据
- 17.1.3 安装requests
- 17.1.4 处理API响应
- 17.1.5 处理响应字典
- 17.1.6 概述最受欢迎的仓库
- 17.1.7 监视API的速率限制
- 17.2 使用Pygal可视化仓库
- 17.2.1 改进Pygal图表
- 17.2.2 添加自定义工具提示
- 17.2.3 根据数据绘图
- 17.2.4 在图表中添加可单击的链接
- 17.3 Hacker News API
- 17.4 小结
- 17.1 使用Web API
- 第15章 生成数据
- 项目3 Web应用程序
- 第18章 Django入门
- 18.1 建立项目
- 18.1.1 制定规范
- 18.1.2 建立虚拟环境
- 18.1.3 安装virtualenv
- 18.1.4 激活虚拟环境
- 18.1.5 安装Django
- 18.1.6 在Django中创建项目
- 18.1.7 创建数据库
- 18.1.8 查看项目
- 18.2 创建应用程序
- 18.2.1 定义模型
- 18.2.2 激活模型
- 18.2.3 Django管理网站
- 1.创建超级用户
- 2.向管理网站注册模型
- 3.添加主题
- 18.2.4 定义模型Entry
- 18.2.5 迁移模型Entry
- 18.2.6 向管理网站注册Entry
- 18.2.7 Django shell
- 18.3 创建网页:学习笔记主页
- 18.3.1 映射URL
- 18.3.2 编写视图
- 18.3.3 编写模板
- 18.4 创建其他网页
- 18.4.1 模板继承
- 18.4.2 显示所有主题的页面
- 1.URL模式
- 2.视图
- 3.模板
- 18.4.3 显示特定主题的页面
- 1.URL模式
- 2.视图
- 3.模板
- 4.将显示所有主题的页面中的每个主题都设置为链接
- 18.5 小结
- 第19章 用户账户
- 19.1 让用户能够输入数据
- 19.1.1 添加新主题
- 1.用于添加主题的表单
- 2.URL模式new_topic
- 3.视图函数new_topic()
- 4.GET请求和POST请求
- 5.模板new_topic
- 6.链接到页面new_topic
- 19.1.2 添加新条目
- 1.用于添加新条目的表单
- 2.URL模式new_entry
- 3.视图函数new_entry()
- 4.模板new_entry
- 5.链接到页面new_entry
- 19.1.3 编辑条目
- 1.URL模式edit_entry
- 2.视图函数edit_entry()
- 3.模板edit_entry
- 4.链接到页面edit_entry
- 19.1.1 添加新主题
- 19.2 创建用户账户
- 19.2.1 应用程序users
- 1.将应用程序users添加到settings.py中
- 2.包含应用程序users的URL
- 19.2.2 登录页面
- 1.模板login.html
- 2.链接到登录页面
- 3.使用登录页面
- 19.2.3 注销
- 1.注销URL
- 2.视图函数logout_view()
- 3.链接到注销视图
- 19.2.4 注册页面
- 1.注册页面的URL模式
- 2.视图函数register()
- 3.注册模板
- 4.链接到注册页面
- 19.2.1 应用程序users
- 19.3 让用户拥有自己的数据
- 19.3.1 使用@login_required限制访问
- 1.限制对topics页面的访问
- 2.全面限制对项目“学习笔记”的访问
- 19.3.2 将数据关联到用户
- 1.修改模型Topic
- 2.确定当前有哪些用户
- 3.迁移数据库
- 19.3.3 只允许用户访问自己的主题
- 19.3.4 保护用户的主题
- 19.3.5 保护页面edit_entry
- 19.3.6 将新主题关联到当前用户
- 19.3.1 使用@login_required限制访问
- 19.4 小结
- 19.1 让用户能够输入数据
第20章 设置应用程序的样式并对其进行部署20.1 设置项目“学习笔记”的样式20.1.1 应用程序django-bootstrap320.1.2 使用Bootstrap来设置项目“学习笔记”的样式20.1.3 修改base.html20.1.4 使用jumbotron设置主页的样式20.1.5 设置登录页面的样式20.1.6 设置new_topic页面的样式20.1.7 设置topics页面的样式20.1.8 设置topic页面中条目的样式
20.2 部署“学习笔记”20.2.1 建立Heroku账户20.2.2 安装Heroku Toolbelt20.2.3 安装必要的包20.2.4 创建包含包列表的文件requirements.txt20.2.5 指定Python版本20.2.6 为部署到Heroku而修改settings.py20.2.7 创建启动进程的Procfile20.2.8 为部署到Heroku而修改wsgi.py20.2.9 创建用于存储静态文件的目录20.2.10 在本地使用gunicorn服务器20.2.11 使用Git跟踪项目文件20.2.12 推送到Heroku20.2.13 在Heroku上建立数据库20.2.14 改进Heroku部署1.在Heroku上创建超级用户2.在Heroku上创建对用户友好的URL
20.2.15 确保项目的安全20.2.16 提交并推送修改20.2.17 创建自定义错误页面1.创建自定义模板2.在本地查看错误页面3.将修改推送到Heroku4.使用方法get_object_or_404()
20.2.18 继续开发20.2.19 设置SECRET_KEY20.2.20 将项目从Heroku删除
20.3 小结
- 18.1 建立项目
- 第18章 Django入门
- 项目1 外星人入侵