1.在python 3.0中,字典的keys、values、items都返回试图对象。视图对象是可迭代的,这就意味着对象每次产生一个结果项,而不是在内存中立即产生结果列表。视图不是列表,不支持像索引和列表sort这样的方法,打印的时候它们也不显示自己的项。要想应用列表操作或显示它们的值(交互提示模式下),必须通过内置函数list。
2.python3.0中的字典视图可以动态地反应在视图对象创建之后对字典做出的修改。
3.元祖(tuple)由圆括号括起,与列表类似,但不可变。
4.想对元组排序,要么先将其转换成list调用sort,要么使用内置函数sorted(它接收任何序列对象)
5.要将字符串转换成列对象,可以运行内置函数eval,eval能把字符串当作可执行程序代码。
6.pickle模块是能够直接在文件中存储几乎任何python对象的高级工具,且不需要来回转换字符串。pickle模块执行所谓的对象序列化,也就是对象和字节字符串之间的相互转换。
7.struct模块能够构造并解析打包的二进制数据,它能够把文件中的字符串解读为二进制数据。
8.seek函数能够复位你在文件中的当前位置(下次读写将应用在该位置上),flush能够强制性地将缓存输出写入磁盘。
9.对象根据分类来共享操作,例如字符串、列表和元组都共享诸如合并、长度和索引等序列操作。
10.frozenset是集合的一个不可变的版本。
11.bytearray字符串类型是可变的。
12.没有限制条件的分片表达式(L[:])能够复制序列。字典copy方法能够复制字典。有些内置函数(如list())能够生成拷贝(list(L)),copy标准库模块能够生成完整拷贝。
13.无条件值的分片以及字典copy方法只能做顶层复制,不能够复制嵌套的数据结构。如果需要一个深层嵌套的、数据结构完整的、完全独立的拷贝,需要copy模块的deepcopy函数。
14.数字如果非0,则为真;对象如果非空,则为真。
15.Type对象。事实上,即使类型本身在python中也是对象类型。
16.赋值生成引用,而不是拷贝。
17.如果一个复合对象包含指向自身的引用,就称之为循环对象。
18.
语句 | 角色 | 例子 |
pass | 空占位符 | while True: pass |
yield(表达式) | 生成器函数 | for i in n: yield i*2 |
nonlocal | 命名空间 | |
import | 模块访问 | import sys |
from | 属性访问 | from sys import stdin |
raise | 触发异常 | raise EndSearch(location) |
assert | 调试检查 | assert X>Y, ' X too small ' |
20.+=是增强赋值形式,输入较少,且通常执行地更快。如果操作主体是可变的并且支持这一操作,增强赋值通过选择远处更新操作而不是对象副本,从而可以更快地运行。在Python中,每个二元表达式运算符都有增强赋值语句。
21.变量命名规则:(下划线或字母)+(任意数目的字母、数字或下划线),区分大小写,禁止使用保留字。
22.命名惯例:①以单一下划线开头的变量名(_X)不会被from module import *语句导入导入。②前后有下划线的变量名(_X_)是系统定义的变量名,对解释器有特殊意义。③以两下划线开头,但结尾没有两个下划线的变量名(__X)是类的本地(“压缩”)变量④通过交互模式运行时,只有单个下划线的变量名会保存最后表达式的结果。
23.类变量名通常以一个大写字母开头,而模块变量名以小写字母开头。
24.比较和相等测试会递归地应用在数据结构中。
25.Python中有三种布尔表达式运算符(不是C中的&&,||和!),X and Y,X or Y,not X
26.while语句有一个可选的else部分(控制权离开循环而又没有碰到break语句时会执行)
27.pass语句是无运算的占位语句,当语法需要语句并且还没有是用的语句可写时,就可以使用它,也可以使用...(三个连续的点号)来省略代码