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类型)、值(跟前两个比不是只读)
- 常用标准类型:数字(整型、长整型、浮点型、复数型)、字符串、列表、元祖、字典、集合
- type类型是所有python类型的默认元类
- 所有值为0/空的对象的布尔值都是False, None的布尔值总是False
- 代码对象是被编译过的Python源代码片段,是可执行片段,通过
complile()
获得,用exec或eval()
执行 - 当异常发生时,一个包含针对异常的栈跟踪信息的跟踪记录对象被创建
- 切片对象:可用内建函数slice, 常用步进切片:
sequence[start, end, step](可利用负步进实现倒序)
- 检查两个变量是否指向同一个对象: is 或者 is not (等价于 id(a) == id(b))
- 操作符优先级:比较操作符(><=) > not > and和or
标准类型常用内建函数:
cmp(obj1, obj2)
(返回-1/0/1)[该函数已在python3中废弃];repr(返回一个对象的字符串表示)
或“;python 3.4.3 的版本中已经没有cmp函数,被operator模块代替
判断对象类型:
isinstance(obj, type/types元祖)
- 标准类型的分类:
存储模型(原子存储/标量存储、容器存储);
更新模型(可变/不可变);
访问模型(直接存取、顺序访问、映射) - python的浮点类型实际上是C中的双精度浮点类型, 要想更精确(比如算钱)可以用十进制浮点型类型:
Decimal
(需要导入decimal)