Python基础教程(第3版)

第2版前言

第1版前言

引言

1 快速上手:基础知识

1.1 交互式解释器

1.2 算法是什么

1.3 数和表达式

十六进制、八进制和二进制

1.4 变量

1.5 语句

1.6 获取用户输入

1.7 函数

1.8 模块

1.8.1 cmath和复数

1.8.2 回到未来

1.9 保存并执行程序

1.9.1 从命令提示符运行Python脚本

1.9.2 让脚本像普通程序一样

1.9.3 注释

1.10 字符串

1.10.1 单引号字符串以及对引号转义

1.10.2 拼接字符串

1.10.3 字符串表示str和repr

1.10.4 长字符串、原始字符串和字节

1.11 小结

1.11.1 本章介绍的新函数

1.11.2 预告

2 列表和元组

2.1 序列概述

2.2 通用的序列操作

2.2.1 索引

2.2.2 切片

2.2.3 序列相加

2.2.4 乘法

2.2.5 成员资格

2.3 列表:Python的主力

2.3.1 函数list

2.3.2 基本的列表操作

2.3.3 列表方法

2.4 元组:不可修改的序列

2.5 小结

2.5.1 本章介绍的新函数

2.5.2 预告

3 使用字符串

3.1 字符串基本操作

3.2 设置字符串的格式:精简版

3.3 设置字符串的格式:完整版

3.3.1 替换字段名

3.3.2 基本转换

3.3.3 宽度、精度和千位分隔符

3.3.4 符号、对齐和用0填充

3.4 字符串方法

3.4.1 center

3.4.2 find

3.4.3 join

3.4.4 lower

3.4.5 replace

3.4.6 split

3.4.7 strip

3.4.8 translate

3.4.9 判断字符串是否满足特定的条件

3.5 小结

3.5.1 本章介绍的新函数

3.5.2 预告

4 当索引行不通时

4.1 字典的用途

4.2 创建和使用字典

4.2.1 函数dict

4.2.2 基本的字典操作

4.2.3 将字符串格式设置功能用于字典

4.2.4 字典方法

4.3 小结

4.3.1 本章介绍的新函数

4.3.2 预告

5 条件、循环及其他语句

5.1 再谈print和import

5.1.1 打印多个参数

5.1.2 导入时重命名

5.2 赋值魔法

5.2.1 序列解包

5.2.2 链式赋值

5.2.3 增强赋值

5.3 代码块:缩进的乐趣

5.4 条件和条件语句

5.4.1 这正是布尔值的用武之地

5.4.2 有条件地执行和if语句

5.4.3 else子句

5.4.4 elif子句

5.4.5 代码块嵌套

5.4.6 更复杂的条件

5.4.7 断言

5.5 循环

5.5.1 while循环

5.5.2 for循环

5.5.3 迭代字典

5.5.4 一些迭代工具

5.5.5 跳出循环

5.5.6 循环中的else子句

5.6 简单推导

5.7 三人行

5.7.1 什么都不做

5.7.2 使用del删除

5.7.3 使用exec和eval执行字符串及计算其结果

5.8 小结

5.8.1 本章介绍的新函数

5.8.2 预告

6 抽象

6.1 懒惰是一种美德

6.2 抽象和结构

6.3 自定义函数

6.3.1 给函数编写文档

6.3.2 其实并不是函数的函数

6.4 参数魔法

6.4.1 值从哪里来

6.4.2 我能修改参数吗

6.4.3 关键字参数和默认值

6.4.4 收集参数

6.4.5 分配参数

6.4.6 练习使用参数

6.5 作用域

6.6 递归

6.6.1 两个经典案例:阶乘和幂

6.6.2 另一个经典案例:二分查找

6.7 小结

6.7.1 本章介绍的新函数

6.7.2 预告

7 再谈抽象

7.1 对象魔法

7.1.1 多态

7.1.2 多态和方法

7.1.3 封装

7.1.4 继承

7.2 类

7.2.1 类到底是什么

7.2.2 创建自定义类

7.2.3 属性、函数和方法

7.2.4 再谈隐藏

7.2.5 类的命名空间

7.2.6 指定超类

7.2.7 深入探讨继承

7.2.8 多个超类

7.2.9 接口和内省

7.2.10 抽象基类

7.3 关于面向对象设计的一些思考

7.4 小结

7.4.1 本章介绍的新函数

7.4.2 预告

8 异常

8.1 异常是什么

8.2 让事情沿你指定的轨道出错

8.2.1 raise语句

8.2.2 自定义的异常类

8.3 捕获异常

8.3.1 不用提供参数

8.3.2 多个except子句

8.3.3 一箭双雕

8.3.4 捕获对象

8.3.5 一网打尽

8.3.6 万事大吉时

8.3.7 最后

8.4 异常和函数

8.5 异常之禅

8.6 不那么异常的情况

8.7 小结

8.7.1 本章介绍的新函数

8.7.2 预告

9 魔法方法、特性和迭代器

9.1 如果你使用的不是Python 3

9.2 构造函数

9.2.1 重写普通方法和特殊的构造函数

9.2.2 调用未关联的超类构造函数

9.2.3 使用函数super

9.3 元素访问

9.3.1 基本的序列和映射协议

9.3.2 从list、dict和str派生

9.4 其他魔法方法

9.5 特性

9.5.1 函数property

9.5.2 静态方法和类方法

9.5.3 getattr、__setattr__等方法

9.6 迭代器

9.6.1 迭代器协议

9.6.2 从迭代器创建序列

9.7 生成器

9.7.1 创建生成器

9.7.2 递归式生成器

9.7.3 通用生成器

9.7.4 生成器的方法

9.7.5 模拟生成器

9.8 八皇后问题

9.8.1 生成器的回溯

9.8.2 问题

9.8.3 状态表示

9.8.4 检测冲突

9.8.5 基线条件

9.8.6 递归条件

9.8.7 扫尾工作

9.9 小结

9.9.1 本章介绍的新函数

9.9.2 预告

10 开箱即用

10.1 模块

10.1.1 模块就是程序

10.1.2 模块是用来下定义的

10.1.3 让模块可用

10.1.4 包

10.2 探索模块

10.2.1 模块包含什么

10.2.2 使用help获取帮助

10.2.3 文档

10.2.4 使用源代码

10.3 标准库:一些深受欢迎的模块

10.3.1 sys

10.3.2 os

10.3.3 fileinput

10.3.4 集合、堆和双端队列

10.3.5 time

10.3.6 random

10.3.7 shelve和json

10.3.8 re

10.3.9 其他有趣的标准模块

10.4 小结

10.4.1 本章介绍的新函数

10.4.2 预告

11 文件

11.1 打开文件

文件模式

11.2 文件的基本方法

11.2.1 读取和写入

11.2.2 使用管道重定向输出

11.2.3 读取和写入行

11.2.4 关闭文件

11.2.5 使用文件的基本方法

11.3 迭代文件内容

11.3.1 每次一个字符(或字节)

11.3.2 每次一行

11.3.3 读取所有内容

11.3.4 使用fileinput实现延迟行迭代

11.3.5 文件迭代器

11.4 小结

11.4.1 本章介绍的新函数

11.4.2 预告

12 图形用户界面

12.1 创建GUI示例应用程序

12.1.1 初探

12.1.2 布局

12.1.3 事件处理

12.1.4 最终的程序

12.2 使用其他GUI工具包

12.3 小结

预告

13 数据库支持

13.1 Python数据库API

13.1.1 全局变量

13.1.2 异常

13.1.3 连接和游标

13.1.4 类型

13.2 SQLite和PySQLite

13.2.1 起步

13.2.2 数据库应用程序示例

13.3 小结

13.3.1 本章介绍的新函数

13.3.2 预告

14 网络编程

14.1 几个网络模块

14.1.1 模块socket

14.1.2 模块urllib和urllib2

14.1.3 其他模块

14.2 SocketServer及相关的类

14.3 多个连接

14.3.1 使用SocketServer实现分叉和线程化

14.3.2 使用select和poll实现异步I/O

14.4 Twisted

14.4.1 下载并安装Twisted

14.4.2 编写Twisted服务器

14.5 小结

14.5.1 本章介绍的新函数

14.5.2 预告

15 Python和Web

15.1 屏幕抓取

15.1.1 Tidy和XHTML解析

15.1.2 Beautiful Soup

15.2 使用CGI创建动态网页

15.2.1 第一步:准备Web服务器

15.2.2 第二步:添加! 行

15.2.3 第三步:设置文件权限

15.2.4 CGI安全风险

15.2.5 简单的CGI脚本

15.2.6 使用cgitb进行调试

15.2.7 使用模块cgi

15.2.8 简单的表单

15.3 使用Web框架

其他Web应用框架

15.4 Web服务:更高级的抓取

15.4.1 RSS和相关内容

15.4.2 使用XML-RPC进行远程过程调用

15.4.3 SOAP

15.5 小结

15.5.1 本章介绍的新函数

15.5.2 预告

16 测试基础

16.1 先测试再编码

16.1.1 准确的需求说明

16.1.2 做好应对变化的准备

16.1.3 测试四步曲

16.2 测试工具

16.2.1 doctest

16.2.2 unittest

16.3 超越单元测试

16.3.1 使用PyChecker和PyLint检查源代码

16.3.2 性能分析

16.4 小结

16.4.1 本章介绍的新函数

16.4.2 预告

17 扩展Python

17.1 鱼和熊掌兼得

17.2 简单易行的方式:Jython和IronPython

17.3 编写C语言扩展

17.3.1 SWIG

17.3.2 手工编写扩展

17.4 小结

17.4.1 本章介绍的新函数

17.4.2 预告

18 程序打包

18.1 Setuptools基础

18.2 打包

18.3 编译扩展

18.4 使用py2exe创建可执行程序

18.5 小结

18.5.1 本章介绍的新函数

18.5.2 预告

19 趣味编程

19.1 为何要有趣

19.2 编程柔术

19.3 原型设计

19.4 配置

19.4.1 提取常量

19.4.2 配置文件

19.5 日志

19.6 如果你已不胜其烦

19.7 如果你想深入学习

19.8 小结

预告

20 项目1:自动添加标签

20.1 问题描述

20.2 有用的工具

20.3 准备工作

20.4 初次实现

20.4.1 找出文本块

20.4.2 添加一些标记

20.5 再次实现

20.5.1 处理程序

20.5.2 处理程序的超类

20.5.3 规则

20.5.4 规则的超类

20.5.5 过滤器

20.5.6 解析器

20.5.7 创建规则和过滤器

20.5.8 整合起来

20.6 进一步探索

预告

21 项目2:绘制图表

21.1 问题描述

21.2 有用的工具

21.3 准备工作

21.4 初次实现

21.4.1 使用ReportLab绘图

21.4.2 绘制折线

21.4.3 编写原型

21.5 再次实现

21.5.1 获取数据

21.5.2 使用LinePlot类

21.6 进一步探索

预告

22 项目3:万能的XML

22.1 问题描述

22.2 有用的工具

22.3 准备工作

22.4 初次实现

22.4.1 创建简单的内容处理程序

22.4.2 创建HTML页面

22.5 再次实现

22.5.1 分派器混合类

22.5.2 将首部和尾部写入文件的方法以及默认处理程序

22.5.3 支持目录

22.5.4 事件处理程序

22.6 进一步探索

预告

23 项目4:新闻汇总

23.1 问题描述

23.2 有用的工具

23.3 准备工作

23.4 初次实现

23.5 再次实现

23.6 进一步探索

预告

24 项目5:虚拟茶话会

24.1 问题描述

24.2 有用的工具

24.3 准备工作

24.4 初次实现

24.4.1 ChatServer类

24.4.2 ChatSession类

24.4.3 整合起来

24.5 再次实现

24.5.1 基本的命令解释功能

24.5.2 聊天室

24.5.3 登录和退出聊天室

24.5.4 主聊天室

24.5.5 新的服务器

24.6 进一步探索

预告

25 项目6:使用CGI进行远程编辑

25.1 问题描述

25.2 有用的工具

25.3 准备工作

25.4 初次实现

25.5 再次实现

25.5.1 创建文件名表单

25.5.2 编写编辑器脚本

25.5.3 编写保存脚本

25.5.4 运行编辑器

25.6 进一步探索

预告

26 项目7:自建公告板

26.1 问题描述

26.2 有用的工具

26.3 准备工作

26.4 初次实现

26.5 再次实现

26.5.1 编写脚本main.cgi

26.5.2 编写脚本view.cgi

26.5.3 编写脚本edit.cgi

26.5.4 编写脚本save.cgi

26.5.5 尝试使用

26.6 进一步探索

预告

27 项目8:使用XML-RPC共享文件

27.1 问题描述

27.2 有用的工具

27.3 准备工作

27.4 初次实现

27.4.1 实现简单的节点

27.4.2 尝试使用

27.5 再次实现

27.5.1 创建客户端界面

27.5.2 引发异常

27.5.3 验证文件名

27.5.4 尝试使用

27.6 进一步探索

预告

28 项目9:使用GUI共享文件

28.1 问题描述

28.2 有用的工具

28.3 准备工作

28.4 初次实现

28.5 再次实现

28.6 进一步探索

预告

29 项目10:自制街机游戏

29.1 问题描述

29.2 有用的工具

29.2.1 pygame

29.2.2 pygame.locals

29.2.3 pygame.display

29.2.4 pygame.font

29.2.5 pygame.sprite

29.2.6 pygame.mouse

29.2.7 pygame.event

29.2.8 pygame.image

29.3 准备工作

29.4 初次实现

29.5 再次实现

29.6 进一步探索

预告

附录 A 简明教程

A.1 基础知识

A.2 函数

A.3 对象及相关内容

A.4 知识点补充

附录 B Python参考手册

B.1 表达式

B.2 语句

B.2.1 简单语句

B.2.2 复合语句

看完了

思维导图

防止博客图床图片失效,防止图片源站外链:

思维导图在线编辑链接:

python基本代码教程-Python基础教程(第3版)相关推荐

  1. Python绘图之matplotlib基础教程:matplotlib库图表绘制中常规设置大全(交互模式、清除原有图像、设置横坐标显示文字/旋转角度、添加图例、绘图布局自动调整、图像显示、图像暂停)

    Python绘图之matplotlib基础教程:matplotlib库图表绘制中常规设置大全(交互模式.清除原有图像.设置横坐标显示文字/旋转角度.添加图例.绘图布局自动调整.图像显示.图像暂停) 目 ...

  2. 《Python程序设计与算法基础教程(第二版)》江红 余青松,第九章课后习题答案

    推荐阅读 <Python程序设计与算法基础教程(第二版)>江红 余青松 全部章节的课后习题,上机实践,课后答案,案例研究 文章目录 例9.1~例9.53 填空题:2 思考题:3~11 上机 ...

  3. 《Python程序设计与算法基础教程(第二版)》江红 余青松 全部章节的课后习题,上机实践,课后答案,案例研究

    (还在更新中-) 这篇博客花费了我的大量时间和精力,从创作到维护:若认可本篇博客,希望给一个点赞.收藏 并且,遇到了什么问题,请在评论区留言,我会及时回复的 这本书对Python的知识点的描述很详细, ...

  4. python程序设计与算法基础江红答案_《Python程序设计与算法基础教程(第二版)》江红 余青松,第十一章课后习题答案...

    推荐阅读 <Python程序设计与算法基础教程(第二版)>江红 余青松 全部章节的课后习题,上机实践,课后答案,案例研究 文章目录 一些知识点总结和几个例题 选择题:1~5 填空题:1~8 ...

  5. 《Python程序设计与算法基础教程(第二版)》江红 余青松,第十章课后习题答案

    推荐阅读 <Python程序设计与算法基础教程(第二版)>江红 余青松 全部章节的课后习题,上机实践,课后答案,案例研究 文章目录 上机实践:2~4 案例研究:基于模块的库存管理系统 上机 ...

  6. Python爬虫之XPath基础教程:用代码抓取网页数据

    Python爬虫之XPath基础教程:用代码抓取网页数据 在网络时代,网页数据是获取信息和进行分析的最重要的来源之一.Python的爬虫技术让我们可以轻松抓取网页数据,并进行数据处理.XPath是一种 ...

  7. Python程序设计与算法基础教程(第二版)微课版第四章上机实践答案

    Python程序设计与算法基础教程(第二版)微课版第四章上机实践答案 2. def generate(L) : #生成杨辉三角的 一行List = [1]for x in range(1,len(L) ...

  8. 全国电子商务人才专业化从业认证考试初级教程(公共基础教程)(全国电子商务人才丛业能力教育指定教材)

    书名:<全国电子商务人才专业化从业认证考试初级教程(公共基础教程)>(全国电子商务人才丛业能力教育指定教材) 作者:单兴华 组编:全国电子商务人才从业能力教育项目管理办公室 出版社:中国人 ...

  9. [转载]VBS入门教程 VBS基础教程

    [转载]VBS入门教程 VBS基础教程(收藏) VBS基础教程 VBS(VBScript的进一步简写)是基于Visual Basic的脚本语言. Microsoft Visual Basic是微软公司 ...

  10. 14-(基础入门篇)关于系统教程和基础教程后期规划

    https://www.cnblogs.com/yangfengwu/p/9966901.html 系统教程:现在的系统教程已经写完源码,还没配教程,现在买只能给源码哈 系统教程初步要做到的就是12节 ...

最新文章

  1. Java线程状态及 wait、sleep、join、interrupt、yield等的区别
  2. 第二章: ORacle 自带用户讲解、oracle的开发工具、oracle客户端的配置、以及常见连接报错
  3. python 计时器 timeit repeat 计算(语句)(函数)耗时 时间 运行时长
  4. html字体渐变颜色的设置颜色代码,使用CSS3实现字体颜色渐变的实现
  5. 在OOW2009上寻宝撞大运续(床上篇)
  6. BAT 数据披露:缺人!110万AI人才缺口,两者矛盾,凉凉了!
  7. 弘辽科技:淘宝旧链接如何打新品标?有什么规则?
  8. JZOJ 5750 青青草原播种计划
  9. 如何用一根网线连接两台电脑,传输大文件
  10. 北邮 复习 软件工程_2019北京邮电大学083500软件工程考研备考指南
  11. HTML中的 后代选择器 和 子代选择器
  12. 质量管理的五大问题和对策|优思学院
  13. java swing paint_Java Paint未在Swing中绘制
  14. Java基于JSP个人博客网站设计与实现
  15. JAVA面向对象学习心得
  16. Java实现 蓝桥杯VIP 算法提高 3000米排名预测
  17. 认识Python控制流
  18. 一键领取饿了么手气最佳红包
  19. Shotcut for Mac(视频编辑器)
  20. android 自动更换壁纸,超简单实用!教你安卓自动更换壁纸的方法

热门文章

  1. sift算法的主要步骤
  2. 多线程+链表模拟RR调度算法
  3. 单链表的基本操作---插入,删除,交,并,相邻元素的交换等
  4. 树莓派安装摄像头 C110 motion
  5. Bailian3703 寻找平面上的极大点【最值】
  6. Verilog语言与数字系统设计
  7. 2015 ACM/ICPC Asia Regional Changchun Online题解
  8. HDU2602 Bone Collector【0/1背包+DP】
  9. CCF NOI1044 最近元素
  10. CCF NOI1065 最小公倍数