Python对象的相关术语
- 每个对象都有一个身份、一个类型、一个值。(身份是指内存中的地址)
- 创建特定类型的对象时,也将该对象称为该类型的实例。
- 实例被创建后,身份和类型不可改变。根据值能否修改,分为可变对象和不可变对象。
核心数据类型:
- 数字:int,long,float,complex,bool
- 字符:str,unicode
- 列表:list
- 字典:dict
- 元组:tuple
- 文件:file
- 其他类型:集合(set),frozenset,类类型,None
其他文件类工具:
pipes,fifos,sockets
类型转换:
- str() , repr() , format() : 非字符类型 —> 字符类型
- int() : 转为整型
- float() : 转为浮点型
- list(s) : 字符串s —> 列表
- tuple(s) : 字符串s —> 元组
- set(s) : 字符串s —> 集合
- frozenset(s) : 字符串s —> 不可变集合
- dict(d) : 根据指定的键值对创建字典,d是(key,value)的元组序列
- chr(x) : 整数 —> 单个字符
- ord(x) : 字符 —> 整数
- hex(x) : 整数 —> 16进制字符串
- bin(x) : 整数 —> 2进制字符串
- oct(x) : 整数 —> 8进制字符串
如何获取使用帮助:
- 获取对象支持使用的属性和方法:dir()
- 某方法的具体使用帮助:help(list.pop)
- 获取可调用对象的文档字串:print obj._doc_
集合:
- 无序排列,可哈希
- 支持集合关系测试
支持成员关系测试:in,not in
不支持索引、元素获取、切片 - 集合的类型:set() , frozenset()
- 没有特定的语法格式,只能通过工厂函数创建
- s1 = set([1,2,3])
容器、类型、对象 的相关概念
- 所有对象都有引用计数
- 列表和字典都支持两种类型的复制操作:浅复制和深复制
深复制可使用copy模块中的deepcopy()实现 - python中的所有对象都是“第一类的”,使用标识符命名的所有对象都具有相同的状态
所以,能够命名的对象都可以直接当数据进行处理 - 所有序列都支持迭代
所有序列都支持的操作和方法
s[i]
s[i:j]
s[i:j:stride]
len(s)
min(s)
max(s)
sum(s)
all(s)
any(s)
s1+s2: 连接
s1*N: 重复
obj in s1: 成员关系判断
obj not in s1