阅读的python书籍:http://sebug.net/paper/python/index.html
1, 逻辑行与物理行 默认一个物理行对应一个逻辑行
http://sebug.net/paper/python/ch04s08.html
2, python中不用声明数据类型
3, 三引号用于多行字符串
4, help('print')打印关于print的帮助
5, 缩进有时会产生错误
6, 乘号“*”:'la' * 3得到'lalala'
"**"表示幂运算:3 ** 4得到81(即3 * 3 * 3 * 3)
“//”返回商的整数部分:4 // 3.0得到1.0
布尔运算:not,and,or
pathon的运算符:http://sebug.net/paper/python/ch05s02.html
运算符的运算顺序:http://sebug.net/paper/python/ch05s03.html
7, guess = int(raw_input('Enter an integer : '))输入一个数,并且把输入转换成整数,赋值给guess
8, python没有switch语句
9 range(1, 5)表示1,2,3,4,默认步长为1,range(1,5,2)给出[1,3]表示步长为2
10 break不执行任何对应的循环else块
11 global为定义在函数外的变量赋值
12 函数的默认参数def say(message, times = 1),只有在形参表末尾的那些参数可以有默认参数值
13 在代码中使用中文,在抬头加上:# coding=utf-8
14 pass语句在Python中表示一个空的语句块。 return None表示不返回任何值
15 在函数的第一个逻辑行的字符串是这个函数的文档字符串,注意,DocStrings也适用于模块和类
文档字符串的惯例是一个多行字符串,它的首行以大写字母开始,句号结尾。第二行是空行,从第三行开始是详细的描述,help()的使用就是参考DocStrings的范例
16 使用import引进模块,sys模块包含了与Python解释器和它的环境有关的函数。
17 字节编译的.pyc文件
18 命令python name1 name2... name1是py结尾的文件名,作为第0个参数,以后依次为1,2..储存在sys.argv中
19 from sys import argv表示import进argv变量
20 模块的__name__属性如果等于'__main__',表明是程序本身运行
21 dir()提供一个模块名的时候,它返回模块定义的名称列表。如果不提供参数,它返回当前模块中定义的名称列表
dir函数来列出模块定义的标识符http://sebug.net/paper/python/ch08s06.html
22 del a删除变量a
23 Python中有三种内建的数据结构——列表、元组和字典
24 元组(圆括号)和列表(方括号)十分类似,只不过元组和字符串一样是 不可变的。
元组通过圆括号中用逗号分割的项目定义。可以通过new_zoo[2][2]索引访问
含有0个或1个项目的元组。一个空的元组由一对空的圆括号组成,如myempty = ()。
然而,含有单个元素的元组就不那么简单了。你必须在第一个(唯一一个)项目后跟一个逗号,
这样Python才能区分元组和表达式中一个带圆括号的对象。
即如果你想要的是一个包含项目2的元组的时候,你应该指明singleton = (2 , )
元组最通常的用法是用在打印语句中
25,你只能使用不可变的对象(比如字符串)来作为字典的键,但是你可以不可变或可变的对象作为字典的值。基本说来就是,你应该只使用简单的对象作为键
26,序列的两个主要特点是索引操作符和切片操作符。
索引操作符让我们可以从序列中抓取一个特定项目。切片操作符让我们能够获取序列的一个切片,即一部分序列
下标从0开始,shoplist[1:3]:输出1,2个
shoplist[2:]:输出2至最后一个
shoplist[1:-1]:输出1到倒数第二个(最后一个不输出)
shoplist[:]:输出全部
27, windows中因为转义符的关系,表示路径的时候用:'C:\\Documents'或r'C:\Documents'而不是'C:\Documents'
28 os.sep根据操作系统输出路径分隔符
29 这里有一个文件备份的python例子http://sebug.net/paper/python/ch10s02.html
30 域和方法可以合称为类的属性。
域有两种类型——属于每个实例/类的对象或属于类本身。它们分别被称为实例变量和类变量。(应该是类的静态变量和实例变量)
31 __init__方法用于类的初始化,__del__用户析构函数
32,如果你使用的数据成员名称以 双下划线前缀 比如__privatevar,Python的名称管理体系会有效地把它作为私有变量。
33,继承使用子类名(父类名)的方式实现,在__init__中需要显式的调用父类的__init__
34, 在print语句上使用逗号来消除自动换行
35,文件读写:模式可以为读模式('r')、写模式('w')或追加模式('a'),读模式会作为默认的模式
36, Python提供一个标准的模块,称为pickle。
使用它你可以在一个文件中储存任何Python对象,之后你又可以把它完整无缺地取出来。这被称为 持久地 储存对象。
还有另一个模块称为cPickle,它的功能和pickle模块完全相同,只不过它是用C语言编写的,因此要快得多(比pickle快1000倍)。
你可以使用它们中的任一个,而我们在这里将使用cPickle模块。记住,我们把这两个模块都简称为pickle模块。
37, sys模块包含系统对应的功能。sys模块中其他令人感兴趣的项目有sys.stdin、sys.stdout和sys.stderr它们分别对应你的程序的标准输入、标准输出和标准错误流
38, 这个模块包含普遍的操作系统功能。如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的。
即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Windows下运行。
一个例子就是使用os.sep可以取代操作系统特定的路径分割符。
os.name字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'。
os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径。
os.getenv()和os.putenv()函数分别用来读取和设置环境变量。
os.listdir()返回指定目录下的所有文件和目录名。
os.remove()函数用来删除一个文件。
os.system()函数用来运行shell命令。
os.linesep字符串给出当前平台使用的行终止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'。
os.path.split()函数返回一个路径的目录名和文件名。
os.path.isfile()和os.path.isdir()函数分别检验给出的路径是一个文件还是目录。
os.path.existe()函数用来检验给出的路径是否真地存在。
39, __init__(self,...) 这个方法在新建对象恰好要被返回使用之前被调用。
__del__(self) 恰好在对象要被删除之前调用。
__str__(self) 在我们对对象使用print语句或是使用str()的时候调用。
__lt__(self,other) 当使用 小于 运算符(<)的时候调用。类似地,对于所有的运算符(+,>等等)都有特殊的方法。
__getitem__(self,key) 使用x[key]索引操作符的时候调用。
__len__(self) 对序列对象使用内建的len()函数的时候调用。
上面的其实有点类似与运算符重载
40, 列表综合:通过列表综合,可以从一个已有的列表导出一个新的列表。
41, def powersum(power, *args)由于在args变量前有*前缀,所有多余的函数参数都会作为一个元组存储在args中。
如果使用的是**前缀,多余的参数则会被认为是一个字典的键/值对。
42, exec语句用来执行储存在字符串或文件中的Python语句。
>>> exec 'print "Hello World"'
Hello World
eval语句用来计算存储在字符串中的有效Python表达式。
>>> eval('2*3')
6
43, assert语句用来声明某个条件是真的。当assert语句失败的时候,会引发一个AssertionError。
44, repr函数用来取得对象的规范字符串表示。注意,在大多数时候有eval(repr(object)) == object。
基本上,repr函数和反引号用来获取对象的可打印的表示形式