标准类型内建函数
函数 | 功能 |
---|---|
cmp(obj1, obj2) | 比较obj1和obj2,根据比较结果返回整型i |
repr(obj) | 返回一个对象的字符串表示 |
str(obj) | 返回对象适合可读性好的字符串表示 |
type(obj) | 得到一个对象的类型,并返回相应的type对象 |
repr()返回的是一个对象的”官方”字符串表示,也就是说绝大多数情况下可以通过求值运算(使用内建函数eval()
重新得到该对象),但str()
则有所不同。str()
致力于生成一个对象的可读性好的字符串表示,它的结果通常无法用于eval()
求值,但很适合print语句输出
标准类型的分类
- 以存储类型为标准的类型分类
分类 | python类型 |
---|---|
标量/原子类型 | 数值(所有的数值类型),字符串(全部是文字) |
容器类型 | 列表、元组、字典 |
以更新类型为标准的类型分类
分类 | python类型 |
---|---|
可变类型 | 列表、字典 |
不可变类型 | 数字、字符串、元组 |
以访问类型为标准的类型分类
分类 | python类型 |
---|---|
直接访问 | 数字 |
顺序访问 | 字符串、列表、元组 |
映射访问 | 字典 |
标准类型分类
数字类型 | 存储模型 | 更新模型 | 访问模型 |
---|---|---|---|
数字 | 标量 | 不可更改 | 直接访问 |
字符串 | 标量 | 不可更改 | 顺序访问 |
列表 | 容器 | 可更改 | 顺序访问 |
元组 | 容器 | 不可更改 | 顺序访问 |
字典 | 容器 | 可更改 | 映射访问 |
数字简介
- 数字提供了标量贮存和直接访问。它是不可更改类型,也就是说变更数字的值会生成新的对象。
- python支持多种数字类型:整型、长整型、布尔型、双精度浮点型、十进制浮点型和复数。
复数的有关概念
- 虚数不能单独存在,它们总是和一个值为0.0的实数部分一起来构成一个复数
- 复数由实数部分和虚数部分构成
- 表示虚数的语法:real+imagj
- 实数部分和虚数部分都是浮点型
- 虚数部分必须有后缀
j
或J
复数属性
属性 | 描述 |
---|---|
num.real | 该复数的实部 |
num.imag | 该复数的虚部 |
num.conjugate() | 返回该复数的共轭复数 |
类型转换的基本原则
- 整型转换为浮点型,非复数转换为复数。在python语言参考中这样描述coerce()方法:
- 如果有一个操作数是复数,另一个操作数被转换为浮点型;
- 否则,如果有一个操作数是浮点型,另一个操作数被转换为浮点型;
- 否则,如果有一个操作数是长整型,另一个操作数被转换为长整型;
- 否则,两者必然都是普通类型,无须类型转换。
位操作符(只适用于整型)
Python整型支持标准位运算:取反(
~
)、按位与(&
)、或(|
)和异或(^
),以及左移(<<
)和右移(>>
)。python这样处理位运算:1、数会被当成正数的二进制补码处理;
2、移和右移N位等同于无溢出检查的2的N次幂运算。
3、整型来说,位操作符使用一种经修改的二进制补码形式,使得符号位可以无限向左扩展。
4、反运算的优先级与数字单目操作符相同,是所有位操作符中优先级最高的一个。左移和右移运算的优先级次之。
序列:字符串、列表和元组
一、序列
- 类型操作符
1、成员关系操作符(in
、not in
)
判断一个元素是否属于一个序列。其语法是:`对象 [not] in 序列`
2、连接操作符(+
)
该操作符允许我们把一个序列和另一个相同类型的序列做连接。其语法是:`sequence1 + sequence2`
3、重复操作符(*
)
当需要一个序列的多份拷贝时,重复操作符非常有用。其语法是:`sequence * copies_int`
4、切片操作符([], [:], [::]
)
通过指定下标(范围)的方式获取序列中的数据。其语法是:
`sequence[index]`、`sequence[starting_index:ending_index]`、
`sequence[starting_index:ending_index:loop:ending_index]`
序列操作符 | 作用 |
---|---|
seq[ind] | 获得下标为ind的元素 |
seq[ind1:ind2] | 获得下标为ind1到ind2间的元素集合 |
seq * expr | 序列重复expr 次 |
seq1 + seq2 | 连接序列seq1和seq2 |
obj in seq | 判断obj元素是否包含在seq中 |
obj not in seq | 判断obj元素是否不包含在seq中 |
序列的内建函数
- 序列类型转换工厂函数
函数 | 含义 |
---|---|
list(iter) | 把可迭代对象转换Wie列表 |
str(obj) | 把obj对象转换为字符串(对象的字符串表示法) |
unicode(obj) | 把对象转换为Unicode字符串(使用默认编码) |
basestring() | 抽象工厂函数,其作用仅仅是为str和unicode函数提供父类 |
tuple(iter) | 把一个可迭代对象转换成一个元组对象 |
- 序列类型可用的内建函数
函数名 | 功能 |
---|---|
enumerate(iter) | 接受一个可迭代对象作为参数,返回一个enumerate对象。该对象生成由iter每个元素的index和item值组成的元组 |
len(seq) | 返回seq的长度 |
max(iter, key=None) or max(arg0, arg1, ... ,key=None) | 返回iter或(arg0, arg1, …)中的最大值。如果指定了key,这个key必须是可用传给sort() 的,用于比较的回调函数 |
min(iter, key=None) or min(arg0, arg1, ... ,key=None) | 返回iter或(arg0, arg1, …)中的最小值。如果指定了key,这个key必须是可用传给sort() 的,用于比较的回调函数 |
reversed(seq) | 接受一个序列作为参数,返回一个以逆序访问的迭代器 |
sorted(iter,func=None,key=None,reverse=False) | 接受一个可迭代对象作为参数,返回一个有序的列表;可选参数的含义与list.sort() 的参数含义相同 |
sum(seq, init=0) | 返回seq和可选参数的综合,其效果等同于reduce(operator.add, seq, init) |
zip([it0, it1, ..., itN]) | 返回一个列表,其元素为it0, it1, …, itN. |
二、字符串