1、from __future__ import division  执行后的结果是:运算符/严格执行true除法(如实计算),运算符//严格执行floor除法(不大于结果的最大整数值)
2、** 是求幂运算符号: 3**4 结果是12
3、运算符号优先级由高到低是
    () -- ** -- */ //% -- +-
如果同时有多个 , ** 会是从右至左的顺序求值 , 其余都是从左至右的求值
4、字符串类型属于python的内建数据类型
5、三引号字符串中, 单或双引号不必添加转义字符,且可以跨多行
6、print 参数简记
    %d             整数
    %8d            8位整数,右对齐
    %-8d           8位整数,左对齐
    %.8d           8位整数, 不足则以0补充
    %x             16进制表示
    %f             float
    %.5f           5位小数float
    %e             科学计数法
    %s             字符串
    %30s           占位30位 ,右对齐
    %-30s          占位30位 ,左对齐
    %.15s          截取左边开始15个字符
    %5.2s          截取字符串占5位, 截取最前2个字符,右对齐
    %-5.2s         截取字符串占5位, 截取最前2个字符,左对齐
7、if结构包括if,测试条件和一个冒号(:),主体部分是采用缩排形式
8、python对语法的评估取决于空距,建议将3个空格设置成一个缩进级别
9、3种控制结构便可以写出所有程序:顺序结构,选择结构,重复结构
10、流程控制时要适当的运用“哨兵值”
11、range返回start到end-1的一个序列
    range(3,10,2)
    start -- 3
    end-1 -- 9
    2是自增值
>>> range(0,10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(3,10,2)
[3, 5, 7, 9]
12、条件1 and 条件2
条件1如果为假,上述表达式将立刻停止,若条件1为真,则继续求值
出于性能考虑:在and表达式中,若不同条件相互独立,将最有可能为false的放在左边;在or表达式中,将最有可能为true的放在左边
13、所有的运算符中,not的级别最低
14、模块(module)是包含函数和类定义的文件,模块的集合,称为包(package)
称为标准库的模块一般位于python安装目录的库目录下,如/usr/lib/pyth2.4或/usr/local/lib/python2.4
15、dir()可以查询当前的命名空间
16、def fact(arg1 = 1,arg2 = 1,arg3 = 1)
17、支持3种基本序列数据类型:字符串、列表(list)和元组(tuple),序列相当于其他语言的数组
    序列如果从尾部访问,最后一个元素是c[-1],倒数第二个是c[-2],一次类推
    列表通常存储同种数据的序列,列表长度可以任意更改
    元组通常存储异种数据的序列,元组长度和值是不可变的,一旦发现修改,就抛出错误
18、创建空元组:aTuple = ()
    创建包含值序列的一个元组:aTuple = 1, 2, 3   创建元组的过程也称为元组打包(packing a tuple),也可以为aTuple = (1, 2, 3)
    创建单元素元组:aSingleton = 1,  切记不能少了这个逗号
19、alist = [ 0, 1, 2 ]
    print range(len(alist))   --> [ 0, 1, 2 ]
20、print "*"*100
21、解包:(注意长度必须完全一致,否则抛错)
    string = "abc"
    first,second,third=string ## first=a , second=b, third=c
    list = ['a','b','c']
    first, second, third=list ## first=a, second=b, third=c
    tuple = ('a','b','c')
    first, second, third=tuple ## first=a , second=b, third=c
    x,y=y,x ## swap x y
22、分片(slice)
    list = ['a','b','c']
    >>> print list[0:2]
    ['a', 'b']
    >>> print list[-2:-1]
    ['b']
    >>> print list[:]  ##整个序列 
    ['a', 'b', 'c']
23、字典
    创建空字典:emptyDict = {}
    初始化字典:Dict = {1:"True", 2:"False"}
    modify字典元素: grade["Steve"] = 90
    删除字典中的一项: del grade["john"]
24、列表的一些常用方法
    List = [1,2,3]
    List.append(4) -- > List = [1,2,3,4]
    List.count(2) -- > 2出现的次数
    append(item)    在列表末尾插入item
    count(element)    返回element在列表中出现的次数
    extend(newList)    将newList的元素插入列表末尾
    index(element)    返回element在列表中首次出现的索引,若不在,产生ValueError异常
    insert(index,item)   在位置index插入item
    pop([index])    index参数可选的。如无参数调用该方法,会删除并返回列表的最后一个元素。如指定了index参数,删除并返回位置index的元素
    remove(element)    删除首次在列表中出现的element,如element不在列表中,则产生ValueError异常
    reverse()    当场反转列表内容(不创建一个反转的拷贝)
    sort([compare-fuction])   当场对列表内容进行排序
25、字典的一些常用方法
    clear()    从字典中删除所有项
    copy()   创建并返回字典的一个浅拷贝(新字典中的元素是对原始字典元素的引用)
    get(key[,returnValue])   返回字典中与key对应的值,若key不在字典中,且指定了returnValue,则返回returnValue,若没指定returnvalue,则返回none
    has_key(key)    若key在字典中,则返回1,否则返回0
    items()    返回一个由元组构成的列表,每个元组包含一个键-值对
    keys()    返回字典中所有键的一个列表
    popitem()    删除任意键-值对,并作为二个元素的一个元组返回。如字典为空,会产生keyerror异常
setdefault(key[,dummyValue]) 与get类似,若key不在字典中,且指定了dummyValue,将键和dummyValue插入字典,若没指定dummyValue,那值为none
    update(newDictionary)    将来自newDictionary的所有键-值对添加到当前字典,并覆盖同名键的值
    values()    返回
    iterkeys()    返回字典键的一个迭代器
    iteritems()    返回键-值对的一个迭代器
    itervalues()   返回字典值的一个迭代器
26、深浅copy:深是一个独立的copy,浅copy是随原本变化的一个副本而已
27、参数传递--传对象引用
28、类:
    类名首字母必须大写
    尽可能包括"文档化字符串"来描述类,文档化字符串习惯上是一个三引号字符串
    将所有方法的第一个参数都命名为"self",确保不同的程序员编写的python程序是一致的
    直接访问对象的属性,可能导致数据进入不一致状态