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.3 解决安装问题
      • 1.4 从终端运行Python程序
        • 1.4.1 在Linux和OS X系统中从终端运行Python程序
        • 1.4.2 在Windows系统中从终端运行Python程序
      • 1.5 小结
    • 第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 小结
    • 第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 小结
    • 第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 小结
    • 第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.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 小结
    • 第9章 类
      • 9.1 创建和使用类
        • 9.1.1 创建Dog类
          • 1.方法__init__()
          • 2.在Python 2.7中创建类
        • 9.1.2 根据类创建实例
          • 1.访问属性
          • 2.调用方法
          • 3.创建多个实例
      • 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 小结
    • 第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 小结
    • 第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 小结
  • 第二部分 项目
    • 项目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.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 小结
    • 项目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 小结
      • 第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 小结
      • 第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 小结
    • 项目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.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.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.4 小结
        • 第20章 设置应用程序的样式并对其进行部署
          • 20.1 设置项目“学习笔记”的样式
            • 20.1.1 应用程序django-bootstrap3
            • 20.1.2 使用Bootstrap来设置项目“学习笔记”的样式
            • 20.1.3 修改base.html
            • 20.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 Toolbelt
            • 20.2.3 安装必要的包
            • 20.2.4 创建包含包列表的文件requirements.txt
            • 20.2.5 指定Python版本
            • 20.2.6 为部署到Heroku而修改settings.py
            • 20.2.7 创建启动进程的Procfile
            • 20.2.8 为部署到Heroku而修改wsgi.py
            • 20.2.9 创建用于存储静态文件的目录
            • 20.2.10 在本地使用gunicorn服务器
            • 20.2.11 使用Git跟踪项目文件
            • 20.2.12 推送到Heroku
            • 20.2.13 在Heroku上建立数据库
            • 20.2.14 改进Heroku部署
              • 1.在Heroku上创建超级用户
              • 2.在Heroku上创建对用户友好的URL
            • 20.2.15 确保项目的安全
            • 20.2.16 提交并推送修改
            • 20.2.17 创建自定义错误页面
              • 1.创建自定义模板
              • 2.在本地查看错误页面
              • 3.将修改推送到Heroku
              • 4.使用方法get_object_or_404()
            • 20.2.18 继续开发
            • 20.2.19 设置SECRET_KEY
            • 20.2.20 将项目从Heroku删除
          • 20.3 小结

随笔

posted @ 2021-06-24 09:08  傀儡岁月  阅读(478)  评论(0编辑  收藏  举报