Head First 系列的书籍一直饱受赞誉,这本也不例外。Head First Python主要讲述了Python 3的基础语法知识以及如何使用Python快速地进行Web、手机上的开发。
下面是该书每章结束部分的知识摘要:
第一章 初始Python:人人都爱列表(Lists)
1. 从命令行或者IDLE里都可以运行Python 3;
2. 标识符是指代数据对象的名称,它本身并没有“类型”,但是它所指代的数据对象拥有类型;
3. 内置函数print()可以在屏幕上显示消息;
4. Python中的列表list是用中括号包住的以逗号分隔的数据集合;
5. list和数组非常相似;
6. list既可以使用内置函数,也可以使用针对列表本身的函数;
7. list的大小按需自动伸缩。数据使用的所有内存都由Python管理;
8. len()内置函数用来计算数据对象的长度或是某个集合(如list)内条目的数量;
9. for循环可以帮助遍历list,它用起来通常比等价的while循环更方便;
10. if...else...语句帮助在代码中做出不同的选择;
11. isinstance()内置函数可用来检测标识符指代的数据对象是否为指定类型;
12. 使用def定义自定义函数。
第二章 分享代码:函数模块
1. 模块是包含Python代码的文本文件;
2. 分发工具(distribution utilities)帮助您将模块变为可共享的包;
3. setup.py程序提供了关于模块的元数据,他可以用于生成,安装和上传分发包;
4. 使用import语句将模块导入到其他程序中;
5. Python中每个模块都提供了自己的命名空间。它在使用module.function()形式调用时用以限定模块内的函数。
6. 使用形如from module import function的import语句可以将模块内特定函数导入当前命名空间;
7. 使用#可以将一行代码变为注释或者为程序添加一条精短且在一行内的注释;
8. 内置函数拥有自己的命名空间,叫做__builtins__,它会自动包含进每个Python程序中。
9. range()内置函数可以和for用在一起进行固定次数的遍历;
10. 在print()内置函数结尾包含end=''可以关掉输出时自动添加的换行符;
11. 如果为函数参数提供默认值,那么它们就为成为可选参数。
第三章 文件和异常:处理错误
1. 使用open()内置函数打开磁盘文件并创建一个迭代器来每次从文件中读取一行数据;
2. readline()方法从一个打开的文件中读取一行数据;
3. seek()方法可以将文件重新定位到开头;
4. close()方法关闭上一次打开的文件;
5. split()方法将一个字符串分为许多份组成的列表;
6. Python中不可改变的常量list叫做tuple。一旦列表数据复制给一个tuple之后,tuple中的数据将不能再被改变。Tuple是不能变的(immutable);
7. 当数据与期望的格式有出入时,会产生ValueError;
8. 当数据没法被正确访问时(例如数据文件可能已经移动过或者重命名过),会产生IOError;
9. help()内置函数提供在IDLE shell中访问Python文档;
10. find()方法可以在一个字符串中查找特定子串;
11. not关键字用来否定一个条件;
12. try/except语句提供了异常处理机制,可以保护那些可能导致运行时错误的代码段;
13. pass语句是Python中的空语句,它什么都不做。
第四章 持久化:将数据存成文件
1. strip()方法移除字符串首尾空白字符;
2. print()内置函数中的file参数可以控制data是读入或是写出;
3. 不管try/except语句中是否有异常发生,finally的代码段总是会被执行;
4. 异常对象会传入到except代码段,并且可以使用as关键字将其赋值给一个标识符;
5. str()内置函数可以用来访问任何数据对象的字符串表示,前提是该数据对象支持该转换;
6. locals()内置函数返回当前作用范围内的变量集合;
7. in操作符可用于测试成员包含关系;
8. "+"操作符应用于两个字符串时会得到它们的串联结果,而应用于数字时会得到它们的相加和;
9. with语句即使在异常发生的情况下,也会自动去关闭所有打开的文件。with语句同样可以使用as关键字;
10. sys.stdout是Python中的标准输出,它位于标准库中的sys模块;
11. 标准库pickle模块可以让轻松高效地保存Python数据对象到磁盘和从磁盘恢复Python数据对象;
12. pickle.dump()函数将数据存盘;
13. pickle.load()函数从磁盘恢复数据。
第五章 理解数据:让数据动起来
1. sort()方法原地排序列表;
2. sorted()内置函数通过复制排序的方式可以对大多数数据结构进行排序;
3. 传入sort()或sorted的参数reverse=True可以将数据进行降序排序;
4. 形如下面的代码段:
new_l = []
for t in old_l:
new_l.append(len(t))
可以重写为列表表达式形式:[len(t) for t in old_l]
5. 使用切片从list中获取多个数据条目,如:my_lis[3:6]会从索引3的位置访问到索引6的位置,不包含6。
6. 使用set()工厂方法创建一个集合
第六章 自定义数据对象:围绕数据编码
1. 使用dict()工厂函数或使用{}来创建一个空的dictionary;
2. 访问一个叫做person的dictionary中Name键所对应的值,可是使用熟悉的中括号记法:person['Name'];
3. 同list和set类似,Python的dictionary数据结构也会随着新元素的加入动态的增长;
4. 填充dictionary的方法有:new_d = {}或new_d = dict(),然后使用d['Name'] = 'Eric Idle';或者直接用一句话new_d = {'Name': 'Eric Idle'};
5. class关键字用来定义类;
6. 类中方法的定义与函数非常相像,都使用def关键字;
7. 类中属性就如同对象实例内部的变量;
8. __init__()方法可以定义在类中用作实例化对象实例;
9. 类中定义的每个方法都必须提供self作为第一个参数;
10. 类中的每个属性都必须使用self为前缀,以使得数据能与实例关联在一起;
11. 既可以从头开始创建类也可以从Python内置或自定义类中继承;
12. 类可以被放入Python模块并上传到PyPI。
第7章 Web开发:信息汇总
1. MVC模式(Model-View-Controller)用一种可维护的方式帮助设计和构建一个Web应用;
2. model存储Web应用中的数据;
3. view显示Web应用的用户界面;
4. controller使用编程逻辑将所有部分连接在一起;
5. 标准库string模块中有一个类叫做Template,它支持简单的字符串替换;
6. 标准库http.server模块可以用来在Python中创建一个简单的Web服务器;
7. 标准库cgi模块提供编写CGI脚本的支持;
8. 标准库glob模块处理文件列表非常好用;
9. 在Linux和Mac OS X上为可执行文件执行chmod+x命令;
10. 标准库cgitb模块在激活时可以在浏览器中看到CGI的编码错误;
11. 使用cgitb.enable()可以在CGI代码中打开CGI跟踪;
12. 使用cgi.FieldStorage()可以访问发送到Web服务器请求部分的数据。
第8章 移动应用开发:小型设备
1. json库模块可以将Python内置类型转为JSON数据交换格式;
2. 使用json.dumps()可以创建Python类型的字符串版本;
3. 使用json.loads()从JSON字符串中创建Python类型;
4. 使用JSON发布数据需要制定Content-Type为application/json;
5. Python 2中的urllib和urllib2可以用与发送编码后的数据给Web服务器(使用urlencode和urlopen函数);
6. sys模块提供了sys.stdin, sys.stdout和sys.stderr输入流。
第9章 管理数据:处理输入
1. 标准库cgi模块中的fieldStorage()方法可以访问CGI脚本中发送给Web服务器的数据;
2. 标准库os中包含的environ字典,提供了对环境变量设置的轻松访问;
3. SQLLite数据库系统在Python中作为sqlite3标准库存在;
4. connect()方法建立与数据库文件的连接;
5. cursor()方法通过一个已有连接与数据库进行通信;
6. execute()方法通过一个已有游标向数据库发送SQL查询;
7. commit()方法对数据库做出永久性的改变;
8. rollback()方法取消任何针对数据的待定改动;
9. close()方法会关闭数据库的已有连接;
10. Python代码中的"?"占位符可以参数化SQL语句。
第10章 扩展Web应用:变得真实
1. 每个App Engine Web应用都必须有一个叫做app.yaml的配置文件;
2. 使用GAE启动器启动、停止、监控、测试、上传以及部署Web应用;
3. App Engine的模板技术基于Django项目;
4. App Engine也可以使用Django表单验证框架;
5. 使用self.response对象构造一个GAE Web应答;
6. 使用self.request对象在GAE Web应用中访问表单数据;
7. 当应答GET请求时,可以子啊get()方法中实现需要的功能;
8. 当应答POST请求时,在post()方法中实现需要的功能;
9. 使用put()方法将数据存储到App Engine datastore中。
第11章 处理复杂数据
1. input()内置函数提示并接受来自用户的输入;
2. 如果发现在使用的是Python2,可以使用原生的_input()函数来取代input()函数;
3. 使用Python内置的列表、集合及字典构建复杂数据结构;
4. 标准库中的time模块,有大量函数可以用来转换不同的时间格式。