温故知新,高级复读机
python基础
- 在python中,对象是通过引用传递的
- 多元赋值时两边的对象都是元祖(省略了括号):
- 查看关键字模块:
keyword
; 列出所有:keyword.kwlist
- 专用下划线标识符:
_xxx
不用import导入/类中的私有变量名
_xxx_
系统定义名字
- doc:访问在各种声明中第一个没有赋值的字符串 使用方法:
函数名/类名/模块名.__doc__
- PEP20(python之禅):
import this
- 模块结构布局:七步走(头文件-文档-模块导入-全局变量-类-函数-主程)
- ` name
系统变量:如果模块是被导入,
name值为该模块的名字;如果是直接执行,则该值为:
‘main’`
- 引用计数:记录每个python对象各有多少个引用,当引用为0时,会被垃圾回收(增加:对象被创建/作为参数/作为容器中元素/追踪调试;减少:当引用离开作用范围时)
del
:删除对象的一个引用(会减少引用)
os.linesep
:根据不同系统选择相应的行结束符(Ps:win是\r\n
, unix是\n
, mac是\r
)
对象概述
- 每个对象都有三个特性:身份(相当于内存地址,可用
id()
得)、类型(可用type()
得,其返回的是一个type类型)、值(前两个是只读的,值可以通过赋新值改变)
- 常用标准类型:数字(整型、长整型、浮点型、复数型)、字符串、列表、元祖、字典、集合(set、frozenset)
- type类型是所有python类型的默认元类
- 所有值为0/空的对象的布尔值都是False, None的布尔值总是False
- 代码对象是被编译过的Python源代码片段,是可执行片段,通过
compile()
获得,用exec或eval()
执行
- 当异常发生时,一个包含针对异常的栈跟踪信息的跟踪记录对象被创建
- 切片对象:可用内建函数
slice
, 常用步进切片:sequence[start, end, step](可利用负步进实现倒序)
- 检查两个变量是否指向同一个对象: is (等价于 id(a) == id(b)) 或者 is not
- 操作符优先级:比较操作符(>、<、=) >
not
> and
和or
- 标准类型常用内建函数:
cmp(obj1, obj2)
(返回-1/0/1); repr()
返回对象的字符串表示(对开发人员友好); str()
也是用于字符串表示(对用户友好)
- 判断对象类型:
isinstance(obj, type/types tuple)
- 标准类型的分类:
- 存储模型(原子存储/标量存储、容器存储): 容器(list, tuple, dict, set),标量(str, int)
- 更新模型(可变/不可变): 可变(dict, list, set),不可变(int, str, tuple, frozenset)
- 访问模型(直接存取、顺序访问、映射): 直接(int), 顺序(str, list, tuple, set),映射(dict)
- python的浮点类型实际上是C中的双精度浮点类型, 要想更精确(比如金额)可以用十进制浮点型类型:
Decimal
(需要导入decimal
)