python基础

  1. 在python中,对象是通过引用传递的
  2. 多元赋值时两边的对象都是元祖(省略了括号):
  3. 查看关键字模块: keyword; 列出所有:keyword.kwlist
  4. 专用下划线标识符:
    • _xxx 不用import导入/类中的私有变量名
    • _xxx_ 系统定义名字
  5. doc:访问在各种声明中第一个没有赋值的字符串 使用方法:函数名/类名/模块名.__doc__
  6. PEP20(python之禅): import this
  7. 模块结构布局:七步走(头文件-文档-模块导入-全局变量-类-函数-主程)
  8. ` name系统变量:如果模块是被导入,name值为该模块的名字;如果是直接执行,则该值为:main’`
  9. 引用计数:记录每个python对象各有多少个引用,当引用为0时,会被垃圾回收(增加:对象被创建/作为参数/作为容器中元素/追踪调试;减少:当引用离开作用范围时)
  10. del:删除对象的一个引用(会减少引用)
  11. os.linesep:根据不同系统选择相应的行结束符(Ps:win是\r\n, unix是\n, mac是\r)

对象概述

  1. 每个对象都有三个特性:身份(相当于内存地址,可用id()得)、类型(可用type()得,其返回的是一个type类型)、(前两个是只读的,值可以通过赋新值改变)
  2. 常用标准类型:数字(整型、长整型、浮点型、复数型)、字符串、列表、元祖、字典、集合(set、frozenset)
  3. type类型是所有python类型的默认元类
  4. 所有值为0/空的对象的布尔值都是False, None的布尔值总是False
  5. 代码对象是被编译过的Python源代码片段,是可执行片段,通过compile()获得,用exec或eval()执行
  6. 当异常发生时,一个包含针对异常的栈跟踪信息的跟踪记录对象被创建
  7. 切片对象:可用内建函数slice, 常用步进切片:sequence[start, end, step](可利用负步进实现倒序)
  8. 检查两个变量是否指向同一个对象: is (等价于 id(a) == id(b)) 或者 is not
  9. 操作符优先级:比较操作符(>、<、=) > not > andor
  10. 标准类型常用内建函数:cmp(obj1, obj2)(返回-1/0/1); repr()返回对象的字符串表示(对开发人员友好); str()也是用于字符串表示(对用户友好)
  11. 判断对象类型:isinstance(obj, type/types tuple)
  12. 标准类型的分类:
    • 存储模型(原子存储/标量存储、容器存储): 容器(list, tuple, dict, set),标量(str, int)
    • 更新模型(可变/不可变): 可变(dict, list, set),不可变(int, str, tuple, frozenset)
    • 访问模型(直接存取、顺序访问、映射): 直接(int), 顺序(str, list, tuple, set),映射(dict)
  13. python的浮点类型实际上是C中的双精度浮点类型, 要想更精确(比如金额)可以用十进制浮点型类型: Decimal(需要导入decimal)