Python入门

1 . 定义 : python是一个免费 , 开源 , 跨平台 , 动态 , 面向对象的编程语言 .
2 . python执行过程 :
  源代码 –编译--> 字节码(特定python的表现形式.pyc) –解释--> 机器码
  |—————————1次—————————————|
3 . 数据类型 :
  None :
  int : 整型
  小整数对象池 : CPython中整数-5 到 256 , 永远存在小整数对象池中 , 不会释放.
  float : 浮点型
  str : 字符串
  bool : 布尔
  complex : 复数
4 . 运算符优先级从高到低 :
  小括号 > 算数运算符 > 比较运算符 > 增强运算符 > 逻辑运算符

ord(字符串) : 返回该字符串的Unicode码 .
chr(Unicode码) : 返回对应的字符串 .

5 . 格式化字符串 :
  % : [- + 0 宽度.精度]类型码
  - : 左对齐(默认就是右对齐)
  + : 显示正号
  0 : 左侧空白位置补零
  宽度 : 整个数据输出的宽度(字符大小)
  精度 : 保留小数点后多少位
  类型码 : s 字符串 d 整数 f小数
6 . 字典推导式 : {键:值 for 变量 in 可迭代对象 if 条件}
7 . 位置形参 --> 星号元组形参 --> 命名关键字形参 --> 双星号字典形参 :

def fun1(a,b,*args,c,d,**kwargs):
    print(a,b,*args,c,d,**kwargs)

8 . 作用域 :
  Local 局部作用域 --> Encolsing 外部嵌套作用域 --> Global 全局作用域 --> Builtins 内建模块作用域
9 . 类的设计 :
  ① 分而治之
    将一个大的需求分解为许多类 , 让每个类处理一个独立的功能 .
    优点 : 便于分工 , 便于复用 , 可扩展性强 .
  ② 封装变化
    需求可能会变化的功能要单独封装 , 避免影响其他类 .
  ③ 高内聚
    类中各个方法都在完成一项任务
  ④ 低耦合
    类与类的关联性与依赖度要低 , 让一个类变化 , 尽少影响其他的类 .
10 . 多态 : 调用父类同一个方法 , 但在不同子类间 , 有不同的表现 .
   体现子类的个性化 .
   增强程序扩展性 , 体现开闭原则 .
11 . 重写 : 子类实现了父类中相同(名称、参数)的方法 , 在调用该方法时 , 实际执行的是子类的方法 .
12 . 类与类的关系 :
  ① 泛化(继承)
    子类与父类的关系 , 耦合度最高 ;
    B类泛化A类 , 意味着B类是A类的子类 .
    做法 : B类继承A类 .
  ② 关联(聚合/组合)
    部分与这个整体的关系 , 耦合度要低于泛化 .
    A类关联B类 , 意味着B是A的一部分 .
    做法 : 在A类中包含B类的成员 .
  ③ 依赖
    合作关系 , 耦合度最低 .
    A类依赖B类 , 意味着A类的某个功能以依靠B类实现 .
    做法 : 在A类的某个方法中 , 将B类作为参数 .
13 . 设计原则 :
  ① 开闭原则(目标)
    对扩展开放 , 对修改关闭 .
    允许增加新功能 ,不修改客户端(使用者)代码 .
  ② 类的单一职责(类的定义)
    一个类有且只有一个改变的原因 .
    外界一个需求的变化 , 内部一个改变的类 .
  ③ 依赖倒置(用父类)
    客户端代码尽量依赖(使用)抽象(父)的组件 .
    抽象的是稳定的 , 实现是多变的 .
  ④ 组合复用原则(少用继承)
    如果仅仅为了代码复用优先选择组合关系 , 而非继承关系 .
    组合的耦合度低于继承 , 灵活度高于继承 .
    例如 : 人可以使用手机/座机/网络电话 .
  ⑤ 里氏替换(重写注意事项)
    父类出现的地方可以被子类替换 , 在替换后依然保持原有功能 .
    从内存角度解释 : 父类(成员少) 子类(成员多)
    子类在重写父类方法时 , 尽量选择扩展重写(先调父类同名方法) , 不要改变原有功能.
  ⑥ 迪米特法则(低耦合)
    原话 : 不要和陌生人说话 .
    类与类交互时 , 在满足功能的基础上 , 传递的数据量越少越好 .
    低耦合 .
14 . 常见异常 :
  IndexError : 索引越界
  ValueError : 值错误
  NameError : 变量未定义
  AttributeError : 对象没有相应属性
  NotImplementedError : 未实现异常
  KeyError : 没有对应的键
15 . 生成器表达式 : (表达式 for 变量 in 可迭代对象 [if 条件])
16 . lambda表达式 :
  定义 : 变量 = lambda [形参] : 方法体(一条语句 , 不支持赋值)
  调用 : 变量(实参)
17 . map(函数 , 可迭代对象) : 使用可迭代对象中的每个元素调用函数 , 将返回值作为新可迭代对象元素 , 返回值为新可迭代对象 .
18 . filter(函数 , 可迭代对象) : 根据条件筛选可迭代对象中的元素 , 返回值为新可迭代对象 .
19 . 文件操作 :

with open(文件名 , "r(只读) | w(只写) | a(追加)") as 变量名 :
    变量名 . write("字符") 
    变量名 . writelines (字符串列表)
    变量名 . readline ()    # 读取一行
    变量名 . readlines ()   # 读取全部行
    for 变量 in 变量名 :  # 迭代读取每行
      语句

20 . 二进制文件操作 :

with open(文件名 , "rb(只读) | wb(只写) |r+b(读写)") as 变量名 :
    变量名 .write(字节串)    
    变量名 .read(字节数) # 读取指定字节
    变量名 .read() # 读取全部字节
    变量名 . tell ()  # 获取文件指针位置
    变量名 . seek(偏移量) # 设置文件指针位置

你可能感兴趣的:(Python入门)