1. file文件
    1. 打开文件
      1. 模式
        1. 'r'->只读
        2. 'w'->只写,文件已存在则清空,不存在则创建。
        3. 'a'->追加,写到文件末尾
        4. 'b'->二进制模式,比如打开图像、音频、word文件。
        5. '+'->更新(可读可写)
        6. 'w+'->会清空,会创建 (文件已存在则清空,不存在则创建。)
        7. 'r+'->不清空,不创建
      2. f1 = open(文件路径,模式)
    2. 文件模式
      1. 二进制文件
      2. 文本文件
        1. 换行标识
          1. windows->'\r\n'
          2. unix->'\n'
          3. mac->'\r'
          4. 为什么windows下的txt在linux打开的时候行尾会有'^M' 为什么在linux下文本文件到本地windows打开变成了一行
        2. 获取换行标识
          1. os.linesep
  2. dic字典
    1. 定义
      1. d = {key1:value, key2:value...}
    2. 索引
      1. d[key]
    3. 增加
      1. d[key] = value
    4. 修改
      1. d[key] = newvalue
    5. 删除
      1. del d[key]
      2. d.clear()
  3. str字符串
    1. 定义字符串
      1. 字符串常量
        1. s1 = 'hello'
      2. 字符串类对象
        1. s1 = str('hello')
    2. 拆分字符串
      1. s1.split('分隔符')
    3. 修改字符串
      1. 合并
        1. '分隔符'.join
        2. s1 + s2
        3. s1.__add__(s2)
      2. 分片
      3. 替换
        1. s1.replace
    4. 查找字符串
      1. s1.find 返回pos
      2. '字符串' in s1 返回True/False
      3. 也可以作为测试字符串
    5. 测试字符串
      1. 结尾测试
        1. s1.endswith
    6. 迭代字符串
      1. for i in s1: 对i字符串操作
      2. [对i字符串操作 for i in s1] 返回list
    7. 格式化字符串
  4. list列表
    1. 定义列表
      1. li = [e1, e2, e3...]
      2. li = range(e1,e2)
    2. 索引
      1. 正索引
        1. li[n]
      2. 负索引
        1. li[-n]
      3. 分片
        1. li[n:m]
    3. 增加
      1. 尾增加
        1. li.append(en)
      2. 插入
        1. li.insert(n,en)
      3. 连接
        1. li.extend(li2)
        2. li = li + li2 li += li2
        3. li * 3 等同于 li + li + li
    4. 删除
      1. li.remove(e1)
    5. 出栈
      1. li.pop()
    6. 搜索
      1. li.index(en) 返回pos
      2. en in li?
    7. 映射
  5. Tuple元组
    1. 定义
      1. ti = (e1, e2, e3...)
    2. append、extend、remove、pop、index
    3. in
  6. set集合
  7. Exception异常
    1. 语句
      1. try/except 捕获并修正异常
        1. 捕获异常
        2. 修正异常
        3. and
      2. try/else 无异常
        1. 先执行else,然后继续执行
      3. try/finally 终止行为
        1. 抛出异常
        2. 执行finally,然后继续执行
        3. or
      4. raise抛出异常
        1. 抛出异常
      5. assert 条件False抛出异常
        1. 抛出AssertionError
      6. with/as
    2. BaseException 异常基类
      1. SystemExit
      2. GeneratorExit
      3. KeyboadInterrupt
      4. Exception
        1. StandardError 标准异常
          1. ArithmeticError
          2. AssertionError
          3. AttributeError
          4. BufferError
          5. EnvironmentError
          6. EOFError
          7. ImportError
          8. SyntaxError
          9. LookupError
          10. MemoryError
          11. NameError
          12. RuntimeError
          13. ReferenceError
          14. SystemError
          15. TypeError
          16. ValueError
        2. Warning
        3. StopIteration
        4. class MyError(Exception): pass 自定义异常
  8. int整型
  9. 基本语法
    1. 控制流
      1. if 条件1: elif 条件2: else:
      2. while 条件: else:#可选
      3. for i in 列表: else: #可选
      4. break
      5. continue
  10. 特点
    1. 代码缩进
    2. 动态类型语言
    3. 一切都是对象
      1. 模块
      2. 函数
      3. 字符串
      4. 列表
      5. 方法
      6. 文件(流对象)
  11. 函数式
    1. lambda函数
    2. 序列化处理函数
      1. map(function, sequence[, ...]) → list
      2. filter(function, sequence) → list
      3. reduce(function, sequence[, initial=0]) → value
      4. zip(sequence[, sequence...]) → sequence
  12. 元类编程
  13. 面向对象
    1. 封装
    2. 继承
    3. 重载
    4. 重写
  14. 反射(自省)机制
    1. 自省对象能描述自己
  15. re正则
    1. compile
    2. pattern
    3. search
  16. pickle持久化
    1. dump
    2. load
  17. argparse命令行解析
  18. thread
  19. threading
  20. processing
  21. Stackless Python
  22. xlrd Excel读
  23. xlwt Excel写
  24. Sympy符号计算
    1. 内建数值类型
      1. 有理数
      2. 浮点数
      3. 整数
    2. 演算
      1. 极限
      2. 微分
      3. 级数展开
      4. 求和
      5. 积分
      6. 复数
      7. 函数
      8. 微分方程
      9. 代数方程
  25. Numpy数值计算
  26. Scipy科学计算
    1. constans 物理和数学常数
    2. cluster 聚类算法
    3. fftpack 快速傅立叶变换程序
    4. integrate 集成和常微分方程求解器
    5. interpolate 拟合和平滑曲线
    6. io 输入和输出
    7. linalg 线性代数
    8. maxentropy 最大熵法
    9. ndimage N维图像处理
    10. odr 正交距离回归
    11. optimize 最优路径选择
    12. signal 信号处理
    13. sparse 稀疏矩阵和以及相关程序
    14. spatial 空间数据结构和算法
    15. special 特殊函数
    16. stats 统计上的函数和分布
    17. weave C/C++ 整合(integration)
  27. Matplotlib绘图
  28. nltk自然语言处理
  29. pysvn版本控制
  30. clang编译器
  31. unittest测试框架
    1. 导入待测模块 导入测试框架
    2. 定义测试类
      1. setUp()重写该函数,用于初始化工作
      2. 测试代码
        1. assertEqual()
      3. tearDown()重写该函数,用于清理工作
    3. 定义任意一个函数
      1. unittest.TestSuite()创建测试集对象
      2. addTest,测试集对象添加测试类,参数为测试类名字
      3. 返回测试对象类
    4. 执行测试
      1. unittest.main(defaultTest = 'suite')