python数据类型
2018-04-07 21:29 邪月三猩 阅读(241) 评论(0) 收藏 举报数据类型: 数字 字符串 布尔 列表 元组 字典 集合
-
数字 int
1.bin()函数将十进制转换成二进制
2.oct()函数将十进制转换成八进制
3.hex()函数将十进制转换成十六进制
十六进制表示:0-9 a b c d e f
4.数字类型的特性:
只能存放一个值
一经定义,不可更改
直接访问
分类:整型,布尔,浮点,复数
bit_length() 当十进制用二进制表示时,最少使用的位数
v = 11
data = v.bit_length()
print(data)
conjugate() 复数
from_bytes()
res = int.from_bytes(x)的含义是把bytes类型的变量x,转化为十进制整数,并存入res中。其中bytes类型是python3特有的类型
to_bytts()
是int.from_bytes的逆过程,把十进制整数,转换为bytes类型的格式
-
字符串 str
引号包含的都是字符串类型
单引双引没有区别
-
字符串的索引与切片a = 'ABCDEFGHIJK'print(a[0])print(a[3])print(a[5])print(a[7]) -
字符串的常用操作
strip()移除空白,也可以去除其他的字符
slipt()分割,默认以空格分割。也可以以其他的字符分割
要注意
不一样的原因,看源码

意思就是默认以空格分割,分割完成后,如果没有指定分割符,或者分隔符为None,任何以空格为分隔符的结果中的空字符串,将从结果中删除。
len()长度
capitalize()首字母大写
center()居中显示例如:x='hello' print(x.center(30,'#'))
count():计数,可以指定起始位置,顾头不顾尾,统计某个字符的个数,空格也算一个字符
endswith()以什么结尾
satrtswith()以什么开头
find()查找字符的索引位置,查找失败 返回 -1.
index()索引
find()和index()的区别
两者都是返回找到被查找到的字符串的索引。
区别在于:在查找失败时,find 返回 -1。index 返回ValueError。
format()字符串格式化
按顺序msg='name:{},age:{},sex:{}'
print(msg.format('haiyan',18,女))
按索引msg='name:{0},age:{1},sex:{0}'
print(msg.format('aaaaaa','bbbbbb'))
赋值的方式msg='name:{x},age:{y,sex:{z}'
print(msg.format(x='haiyan',y='18',z='女'))
% 字符串格式化 %s %d %f
print('abdc %s sdfsdf' % 'aaa')
%s 后面可以是数字类型。但%d 后面必须是数字类型的。
使用字典:
d={"name":"lisi","age":"18"}
s='my name is %(name)s, age is %(age)s'
print(s % d)
isdigit()判断是否是数字
islower()判断是否是全部小写
isupper()判断是否是全部大写
lower()全部转换为小写
upper()全部转换为大写
isspace()判断是否是全都是空格
istitle()判断是否是标题(首字母大写)
swapcase()大小写字母翻转
join()连接
repalce()替换
msg='hello alex'
print(msg.replace('e'),'A',1)
print(msg.replace('e'),'A',2)
ljust()左对齐
X='ABC' print(x.ljust(10,'*'))
-
布尔值 bool
布尔值就两种:True,False。就是反应条件的正确与否。
真 1 True 非空数据类型 如:[''],' ' " "
假 0 False 空的数据类型 如:[] '' "" None
-
列表 list
-
元组 tuple
-
字典 dict
-
集合 set
-
参考表
- Python 关键字
表 B-1 Python 关键字①
|
and |
as② |
assert③ |
break |
|
class |
continue |
def |
del |
|
elif |
else |
except |
exec④ |
|
finally |
for |
from |
global |
|
if |
import |
in |
is |
|
lambda |
nonlocal⑤ |
not |
or |
|
pass |
print④ |
raise |
return |
|
try |
while |
with② |
yield⑥ |
-
Python 标准操作符和函数
表 B-2 代表操作符和函数(内置和工厂),它们可以用于大多数标准的 Python 对象和用 户自定义对象,在自定义对象中实现了它们对应的特殊方法。
表 B-2 标准类型操作符和函数
|
操作符/函数 |
描述 |
结果 |
内置和工厂函数
|
cmp(obj1, obj2) |
比较两个对象 |
int |
|
repr(obj) |
一种可以计算的字符串表示 |
str |
|
str(obj) |
可打印的字符串表示 |
str |
|
type(obj) |
对象类型 |
type |
值比较
|
< |
小于 |
bool |
|
> |
大于 |
bool |
|
<= |
小于或等于 |
bool |
|
>= |
大于或等于 |
bool |
|
== |
等于 |
bool |
|
!= |
不等于 |
bool |
|
<>② |
不等于 |
bool |
对象比较
|
is |
相同于 |
bool |
|
is not |
不同于 |
bool |
布尔操作符
|
not |
逻辑非 |
bool |
|
and |
逻辑与 |
bool |
|
or |
逻辑或 |
bool |
① 布尔比较返回 True 或 False。
② Python 3.0 中移除,替换为!=。
B.3 数值类型操作符和函数
表 B-3 列举了应用于 Python 数值对象的操作符和函数。
表 B-3 所有数值类型操作符和内置函数
|
操作符/内置 |
描述 |
int |
long① |
float |
complex |
结果① |
|
abs() |
绝对值 |
· |
· |
· |
· |
number① |
|
bin() |
二进制字符串 |
· |
· |
· |
· |
str |
|
chr() |
字符 |
· |
· |
str |
||
|
coerce() |
数值强制转换 |
· |
· |
· |
· |
tuple |
|
complex() |
复杂工厂函数 |
· |
· |
· |
· |
complex |
|
divmod() |
除法/求模 |
· |
· |
· |
· |
tuple |
|
float() |
浮点型工厂函数 |
· |
· |
· |
· |
float |
|
hex() |
十六进制字符串 |
· |
· |
str |
||
|
int() |
int 工厂函数 |
· |
· |
· |
· |
int |
|
long()① |
long 工厂函数 |
· |
· |
· |
· |
long |
|
oct() |
八进制字符串 |
· |
· |
str |
||
|
ord() |
序数 |
字符串 |
int |
|||
|
pow() |
求幂 |
· |
· |
· |
· |
number |
|
round() |
浮点数取整 |
· |
float |
|||
|
sum() ③ |
求和 |
· |
· |
· |
float |
|
|
**④ |
求幂 |
· |
· |
· |
· |
number |
|
+⑤ |
没变化 |
· |
· |
· |
· |
number |
|
- d |
取负 |
· |
· |
· |
· |
number |
|
~ d |
位反转 |
· |
· |
int/long |
||
|
**③ |
求幂 |
· |
· |
· |
· |
number |
|
* |
乘法 |
· |
· |
· |
· |
number |
|
/ |
经 典 除 法 或 真 除 法 |
· |
· |
· |
· |
number |
|
// |
向下除法 |
· |
· |
· |
· |
number |
|
% |
取模/求余数 |
· |
· |
· |
· |
number |
|
+ |
加法 |
· |
· |
· |
· |
number |
|
- |
减法 |
· |
· |
· |
· |
number |
|
<< |
位左移 |
· |
· |
int/long |
||
|
>> |
位右移 |
· |
· |
int/long |
||
|
& |
接位与 |
· |
· |
int/long |
||
|
^ |
接位异或 |
· |
· |
int/long |
||
|
| |
接位或 |
· |
· |
int/long |
① Python 3.0 移除了 long 类型,而用 int 代替。
②"数值"结果表明任何数值类型,可能与操作数相同。
③ Python 2.3 中新增。
④ **与一元操作符有一种独特的关系。
⑤ 一元操作符。
B.4 序列类型操作符和函数
表 B-4 包含一整套可用于序列类型的操作符、函数(内置和工厂)和内置方法。
表 B-4 序列类型操作符、函数和内置方法
|
操作符内置函数或方法 |
str |
list |
tuple |
|
[ ](创建列表) |
· |
||
|
( ) |
· |
||
|
" " |
· |
||
|
append() |
· |
||
|
capitalize() |
· |
||
|
center() |
· |
||
|
chr() |
· |
||
|
cmp() |
· |
· |
· |
|
count() |
· |
· |
·① |
|
decode() |
· |
||
|
encode() |
· |
||
|
endswith() |
· |
||
|
expandtabs() |
· |
||
|
extend() |
· |
||
|
find() |
· |
||
|
format() |
·① |
||
|
hex() |
· |
||
|
index() |
· |
· |
·① |
|
insert() |
· |
||
|
isalnum() |
· |
||
|
isalpha() |
· |
||
|
isdecimal() |
·② |
||
|
isdigit() |
· |
||
|
islower() |
· |
||
|
isnumeric() |
·② |
|
操作符内置函数或方法 |
str |
list |
tuple |
|
isspace() |
· |
||
|
istitle() |
· |
||
|
isupper() |
· |
||
|
join() |
· |
||
|
len() |
· |
· |
· |
|
list() |
· |
· |
· |
|
ljust() |
· |
||
|
lower() |
· |
||
|
lstrip() |
· |
||
|
max() |
· |
· |
· |
|
min() |
· |
· |
· |
|
oct() |
· |
||
|
ord() |
· |
||
|
partition() |
·③ |
||
|
pop() |
· |
||
|
raw_input() |
· |
||
|
remove() |
· |
||
|
replace() |
· |
||
|
repr() |
· |
· |
· |
|
reverse() |
· |
||
|
rfind() |
· |
||
|
rindex() |
· |
||
|
rjust() |
· |
||
|
rpartition() |
·③ |
||
|
rsplit() |
·④ |
||
|
rstrip() |
· |
||
|
sort() |
· |
||
|
split() |
· |
||
|
splitlines() |
· |
||
|
startswith() |
· |
||
|
str() |
· |
· |
· |
|
strip() |
· |
||
|
swapcase() |
· |
||
|
title() |
· |
||
|
translate() |
· |
||
|
tuple() |
· |
· |
· |
|
type() |
· |
· |
· |
|
操作符内置函数或方法 |
str |
list |
tuple |
|
upper() |
· |
||
|
zfill() |
·⑤ |
||
|
·(属性) |
· |
· |
· |
|
[ ](切片) |
· |
· |
· |
|
[:] |
· |
· |
· |
|
* |
· |
· |
· |
|
% |
· |
||
|
+ |
· |
· |
· |
|
in |
· |
· |
· |
|
not in |
· |
· |
· |
① Python 2.6 中新增(tuple 的第一批方法)。
② Python 2.x 中仅仅用于 Unicode 字符串,Python 3.0 中"新增"。
③ Python 2.5 中新增。
④ Python 2.4 中新增。
⑤ Python 2.2.2 中新增。
B.5 字符串格式化操作符转换符号
表 B-5 列出了可用于字符串格式操作符(%)的格式化符号。
表 B-5 字符串格式化操作符转换符号
|
格式化符号 |
转换 |
|
%c |
字符(整数[ASCII 值]或长度为 1 的字符串) |
|
%r① |
格式化之前通过 repr()进行字符串转换 |
|
%s |
格式化之前通过 str()进行字符串转换 |
|
%d 或%i |
有符号十进制整数 |
|
%u② |
无符号十进制整数 |
|
%o② |
(无符号)八进制整数 |
|
%x②或%X② |
(无符号)十六进制整数(小写或大写字母) |
|
%e 或%E |
指数符号(小写 e 或大写 E) |
|
%f 或%F |
浮点实数(自动截断小数) |
|
%g 或%G |
%e 和%f 或%E%和%F%的简短写法 |
|
%% |
非转义的百分号字符(%) |
① Python 2.0 中新增,似乎只有 Python 中才有。
② 在 Python 2.4+中,int 型负数的%u 或%o 或%X 返回一个有符号字符串。
B.6 字符串格式化操作符指令
当使用字符串格式化操作符(见表 B-5)时,可以利用表 B-6 中的指令增强或调整对象 显示。
表 B-6 格式化操作符辅助指令
|
符号 |
功能 |
|
* |
参数指定宽度或精度 |
|
− |
使用左对齐 |
|
+ |
为正数使用加号(+) |
|
<sp> |
为正数使用空格填充 |
|
# |
根据是否使用 x 或 X,添加八进制前导零(0)或十六进制前导 0x 或 0X |
|
0 |
当格式化数字时使用零(而不是空格)填充 |
|
% |
%%提供一个单符号% |
|
(var) |
映射变量(字典参数) |
|
m.n |
m 是最小总宽度,n 是小数点后面要显示的数字的位数(如果合适) |
B.7 字符串类型内置方法
表 B-4 描述的字符串内置方法如表 B-7 所示。
表 B-7 字符串类型内置方法
|
方法名 |
描述 |
|
string.capitalize() |
字符串的第一个字母大写 |
|
string.center(width) |
返回一个共 width 列、填充空格的字符串,原始字符串处于其中心位置 |
|
string.count(str, beg=0, end=len(string)) |
统计 str 在 string 中出现的次数,如果给定了开始索引 beg 和结束索引 end, 将统计 str 在 string 的子串中出现的次数 |
|
string.decode(encoding='UTF-8, 'errors='strict')⑤ |
返回 string 的解码字符串版本;如果发生错误,默认情况下会抛出一个 ValueError 异常,除非通过 ignore 或 replace 给出了 errors |
|
string.encode(encoding='UTF-8', 'errors='strict ')① |
返回 string 的编码字符串版本;如果发生错误,默认情况下会抛出一个 ValueError 异常,除非通过 ignore 或 replace 给出了 errors |
|
string.endswith(str, beg=0, end=len(string))② |
确定 string 或 string 的子串(如果给出了开始索引 beg 和结束索引 end)是否 以 str 结尾,如果是则返回 True,否则返回 False |
|
string.expandtabs(tabsize=8) |
在 string 中扩展制表符为多个空格;如果 tabsize 没提供,默认情况下每个制 表符为 8 个空格 |
|
string.find(str, beg=0, end=len(string)) |
确定 str 是否出现在 string 中;如果给定了开始索引 beg 和结束索引 end,则 会确定 str 是否出现在 string 的子串中;如果发现则返回索引,否则返回−1 |
|
方法名 |
描述 |
|
string.format(*args, **kwargs) |
根据传入的 args 和/或 kwargs 进行字符串格式化 |
|
string.index(str, beg=0, end=len(string)) |
与 find()相同,但如果未找到 str,则会抛出一个异常 |
|
string.isalnum()①②③ |
如果 string 中至少含有 1 个字符并且所有字符都是字母数字,那么返回 True 否则返回 Fals |
|
string.isalpha()①②③ |
如果 string 中至少含有 1 个字符并且所有字符都是字母,那么返回 True 否则 返回 False |
|
string.isdecimal()①②③ |
如果 string 只包含十进制数则返回 True,否则返回 False |
|
string.isdigit()②③ |
如果 string 只包含数字则返回 True,否则返回 False |
|
string.islower()②③ |
如果 string 包含至少 1 个区分大小写的字符并且所有区分大小写的字符都是小 写的,则返回 True,否则返回 False |
|
string.isnumeric()②③④ |
如果 string 只包含数字字符则返回 True 否则返回 False |
|
string.isspace()②③ |
如果 string 只包含空格字符则返回 True 否则返回 False |
|
string.istitle()②③ |
如果 string 是适当"标题大小写风格"(见 title())则返回 True,否则返回 False |
|
string.isupper()②③ |
如果 string 包含至少 1 个区分大小写的字符并且所有区分大小写的字符都是大 写的,则返回 True,否则返回 False |
|
string.join(seq) |
将 seq 序列中的元素字符串表示合并(连接)到一个字符串,string 作为分隔符 |
|
string.ljust(width) |
返回一个空格填充的 string,原始字符串在总列数为 width 的空间中左对齐 |
|
string.lower() |
将 string 中所有的大写字母转换为小写字母 |
|
string.lstrip() |
删除 string 中的所有前置空格 |
|
string.replace(str1, str2, num=string.count(str1)) |
用 str2 替换 string 中出现的所有 str1,或者最多 num 个(如果给定了 num) |
|
string.rfind(str, beg=0, end=len(string)) |
与 find ()相同,但在 string 中向后搜索 |
|
string.rindex( str, beg=0, end=len(string)) |
与 index()相同,但在 string 中向后搜索 |
|
string.rjust(width) |
返回一个空格填充的 string,原始字符串在总列数为 width 的空间中右对齐 |
|
string.rstrip() |
删除 string 中所有的尾部空格 |
|
string.split(str="", num=string.count(str)) |
根据分隔符 str(如果没提供,默认为空格)分割 string 并返回子串的列表; 如果给定了 num,则最多分为 num 个子串 |
|
string.splitlines(num=string.count('\n')) ②③ |
在所有(或 num 个)换行处分割 string 并返回一个删除换行符后每行的列表 |
|
string.startswith(str, beg=0, end=len(string)) ② |
确定 string 或其子串(如果给定了开始索引 beg 和结束索引 end)是否以子串 str 开始,若是则返回 True,否则返回 False |
|
string.strip([obj]) |
对 string 执行 lstrip()和 rstrip()操作 |
|
string.swapcase() |
反转 string 中所有字母大小写 |
|
string.title()②③ |
返回 string 的"标题大小写风格"版本,即所有单词都以大写字母开始,而其 余字母小写(另外参见 istitle()) |
|
string.translate(str, del="") |
根据翻译表 str(256 个字符)翻译 string,并删除 del 字符串中的内容 |
|
string.upper() |
将 string 中的小写字母转换为大写字母 |
|
string.zfill(width) |
返回左填充 0 并且总字符数为 width 的原始字符串;用于数字,zfill()保留任 何给定的符号(少一个 0) |
① 在 1.6 版本只适用于 Unicode 字符串,但适用于 2.0 版本中的所有字符串类型。
② 1.5.2 版本中没有 string 模块功能。
③ 在 Python 2.1 c 中新增。
④ 仅适用于 Unicode 字符串。
⑤ 在 Python 2.2 e。中新增。
B.8 列表类型内置方法
表 B-8 给出了表 B-4 中给出的列表内置方法的完整描述和使用语法。
表 B-8 列表类型内置方法
|
列表方法 |
操作 |
|
list.append(obj) |
将 obj 添加到 list 末尾 |
|
list.count(obj) |
返回 obj 在 list 中出现的次数 |
|
list.extend(seq)① |
将 seq 的内容附加到 list 中 |
|
list.index(obj, i=0, j=len(list)) |
返回使 list[k]==obj 和 i≤=k<j 同时成立的最小索引 k,否则抛出 ValueError 异常 |
|
list.insert(index, obj) |
将 obj 插入 list 中的偏移量 index 处 |
|
list.pop(index=-1)① |
从 list 中删除并返回在给定或最后索引处的 obj |
|
list.remove(obj) |
从 list 中删除对象 obj |
|
list.reverse() |
按顺序反转 list 中的对象 |
|
list.sort(func=None, key=None, reverse=False) |
利用可选的比较函数 func 排序列表成员;当提取要排序的元素时 key 是一个回调,并且如果 reverse 标记为 True,则 list 将以倒序排序 |
① Python 1.5.2 中新增。
B.9 字典类型内置方法
表 B-9 列出了字典内置方法的完整描述和使用语法。
表 B-9 字典类型方法
|
方法名 |
操作 |
|
dict.clear①() |
删除 dict 中的所有元素 |
|
dict.copy①() |
返回 dict 的一份(浅)②拷贝 |
|
dict.fromkeys②(seq, val=None) |
创建并返回一个新字典,其中 seq 的元素作为字典的键,val 作为所有键对应的 初始值(若没给定,则默认为 None) |
|
dict.get(key, default=None) ① |
对于键 key 返回其对应的值,或者若 dict 中不含 key 则返回 default(注意,default 的默认值为 None) |
|
dict.has_key(key)⑤ |
如果 key 存在于 dict 中则返回 True,否则返回 False;在 Python2.2 中被 in 和 not in 操作符部分替代,但是仍旧提供一个功能接口 |
|
dict.items() |
返回 dict 的(key, value)元组对的一个迭代版本⑥ |
|
方法名 |
操作 |
|
dict.iter*③() |
iteritems()、iterkeys()、itervalues()都是行为与它们的非迭代器版本相同的方法, 但是返回一个迭代器,而不是一个列表 |
|
dict.keys() |
返回 dict 所有键的一个迭代版本 |
|
dict.pop②(key[,default]) |
类似于 get(),但删除并返回 dict[key](如果给定了 key);如果 key 不存在于 dict 中且未给出 default,则抛出 KeyError 异常 |
|
dict.setdefault(key, default=None)④ |
类似于 get(),但如果 key 不存在于 dict 中,则设置 dict[key]=default |
|
dict.update(dict2)① |
将 dict2 中的键值对添加到 dict 中 |
|
dict.values() |
返回 dict 中值的一个迭代版本 |
① Python 1.5 中新增。
② Python 2.3 中新增。
③ Python 2.2 中新增。
④ Python 2.0 中新增。
⑤ Python 2.2 中弃用,Python 3.0 中移除,用 in 代替。
⑥ 在 Python 3.0 中迭代版本是一组视图,而在之前所有版本中它是一个列表。
B.10 集合类型操作符和内置函数
表 B-10 列出了各种操作符、函数(内置和工厂)以及应用于两种集合类型(set[可变的] 和 frozenset[不可变的])的内置方法。
表 B-10 集合类型操作符、函数和内置方法
|
函数/方法名 |
等效操作符 |
描述 |
所有集合类型
|
len(s) |
集合基数:s 中元素的数量 |
|
|
set([obj]) |
可变集合工厂函数;如果给出了 obj,那么它必须是可迭代的,并且新的元素取自 obj;如果没有给出,则创建一个空集合 |
|
|
frozenset ([obj]) |
不可改变的集合工厂函数;除了返回不可改变的集合之外,其他运作方式与 set()相同 |
|
|
obj in s |
成员测试:obj 是 s 的一个元素吗 |
|
|
obj not in s |
非成员测试:obj 不是 s 的一个元素吗 |
|
|
s == t |
等价测试:s 和 t 拥有完全相同的元素吗 |
|
|
s != t |
不等价测试:与==相反 |
|
|
s < t |
(严格的)子集测试:s!= t 且 s 的所有元素都是 t 的成员 |
|
|
s.issubset(t) |
s <= t |
子集测试(允许不适当的子集):s 的所有元素都是 t 的成员 |
|
s > t |
(严格的)超集测试:s!= t 且 t 的所有元素都是 s 的成员 |
|
函数/方法名 |
等效操作符 |
描述 |
|
s.issuperset(t) |
s >= t |
超集测试(允许不适当的超集):t 所有的元素都是 s 的成员 |
|
s.union(t) |
s | t |
并操作:s 或 t 中的元素 |
|
s.intersection(t) |
s & t |
交操作:s 和 t 中的元素 |
|
s.difference(t) |
s – t |
差操作:存在于 s 中且不存在于 t 中的元素。 |
|
s.symmetric_difference(t) |
s ^ t |
对称差操作:仅仅存在于 s 和 t 二者之一中的元素 |
|
s.copy() |
复制操作:返回 s 的(浅)复制 |
|
|
s.update(t) |
s |= t |
(联合)更新操作:把 t 中成员添加到 s 中 |
|
s.intersection_update(t) |
s &= t |
交更新操作:s 仅仅包含原始 s 与 t 的成员 |
|
s.difference_update(t) |
s -= t |
差更新操作:s 仅仅包含 s 中不存在于 t 中的原始成员 |
|
s.symmetric_difference_u pdate(t) |
s ^= t |
对称差更新操作:s 只包含原始 s 和 t 二者之一中的成员 |
|
s.add(obj) |
添加操作:将 obj 添加到 s 中 |
|
|
s.remove(obj) |
删除操作:从 s 中删除 obj;如果 obj 不存在于 s 中,则抛出 Key-Error 异常 |
|
|
s.discard(obj) |
丢弃操作:remove()的更友好版本,如果 obj 存在于 s 中,则从 s 中移除 obj |
|
|
s.pop() |
弹出操作:删除并返回 s 中的任意元素 |
|
|
s.clear() |
清除操作:删除 s 的所有元素 |
B.11 文件对象方法和数据属性
表 B-11 列出了文件对象的内置方法和数据属性。
表 B-11 文件对象方法
|
文件对象属性 |
描述 |
|
file.close() |
关闭 file |
|
file.fileno() |
返回 file 的整数文件描述符 |
|
file.flush() |
冲刷 file 的内部缓冲器 |
|
file.isatty() |
如果 file 是一个类 tty 设备,则返回 True;否则返回 False |
|
file.next①() |
返回 file 中的下一行(类似 file.readline()),或如果没有更多行则抛出 StopIteration 异常 |
|
file.read(size=-1) |
读取文件中的 size 个字节,如果 size 未给出或为负数,则读取所有剩余的字节,作为一个字符串 返回 |
|
file.readinto②(buf, size) |
从 file 中读取 size 个字节到缓冲器 buf 中(不支持) |
|
file.readline(size=-1) |
从 file 中读取并返回一行(包括行结束字符),为一整行或 size 字符的最大值 |
|
file.readlines(sizhint=0) |
从 file 中读取所有行并作为一个列表(包括所有行终止符)返回;如果给定了 sizhint 并且 sizhint > 0,则返回由大约 sizhint 个字节(可以向上圆整到下一个缓冲器的值)组成的整个行 |
|
file.xreadlines③() |
用于迭代,返回 file 中的行,它作为块以一种比 readlines()更有效的方式读取 |
|
文件对象属性 |
描述 |
|
file.seek(off, whence=0) |
移动到 file 中的某个位置,从 whence 的 off 字节的偏移量处(0 表示文件的开始,1 表示当前位 置,2 表示文件末尾) |
|
file.tell() |
返回 file 内的当前位置 |
|
file.truncate(size=file.tell()) |
以最多 size 字节来截断 file,默认为当前文件位置 |
|
file.write(str) |
向 file 中写入字符串 str |
|
file.writelines(seq) |
将字符串 seq 写入 file 中;seq 应该是一个可迭代产生的字符串;在 Python 2.2 版本之前,它仅仅 是一个字符串列表 |
|
file.closed |
如果 file 关闭了则为 True;否则为 False |
|
file.encoding④ |
这个文件使用的编码,当向 file 中写入 Unicode 字符串时,使用 file.encoding 将它们转换为字节 字符串;值 None 表示应该使用系统默认的编码方式来转换 Unicode 字符串 |
|
file.mode |
打开 file 的访问模式 |
|
file.name |
file 名称 |
|
file.newlines④ |
如果没有读取到行分隔符则为 None,否则为一个由一种类型的行分隔符组成的字符串,或一个 包含当前读取的行终止符所有类型的元组 |
|
file.softspace |
如果 print 明确要求空格则为 0,否则为 1;很少供程序员使用,通常只供内部使用 |
① Python 2.2 中新增。
② Python 1.5.2 中新增,但目前已不支持。
③ Python 2.1 中新增,Python 2.3 中弃用。
④ Python 2.3 中新增。
B.12 Python 异常
表 B-12 列出了 Python 中的异常。
表 B-12 Python 内置异常
|
异常名称 |
描述 |
|
BaseException① |
所有异常的基类 |
|
SystemExit② |
Python 解释器请求终止 |
|
KeyboardInterrupt③ |
用户中断执行(通常通过按 Ctrl + C 组合键) |
|
Exception④ |
常用异常的基类 |
|
StopIteration⑤ |
迭代没有更多值 |
|
GeneratorExit① |
发送到生成器令其停止的异常 |
|
SystemExit⑥ |
Python 解释器请求终止 |
|
StandardError④ |
所有标准内置异常的基类 |
|
ArithmeticError④ |
所有数值计算错误的基类 |
|
FloatingPointError④ |
浮点计中的错误 |
|
OverflowError |
计算结果超出数值类型最大限制 |
|
异常名称 |
描述 |
|
ZeroDivisionError |
被零除(或求模)错误(所有数值类型) |
|
AssertionError④ |
assert 声明失败 |
|
AttributeError |
没有这种对象属性 |
|
EOFError |
没有从内置输入就到达了文件末尾标志 |
|
EnvironmentError |
操作系统环境错误的基类 |
|
IOError |
输入/输出操作失败 |
|
OSError |
操作系统错误 |
|
WindowsError |
MS Windows 系统调用失败 |
|
ImportError |
导入模块或对象失败 |
|
KeyboardInterrupt⑥ |
用户中断执行(通常通过按 Ctrl + C 组合键) |
|
LookupError④ |
无效数据查找错误的基类 |
|
IndexError |
序列中没有这种索引 |
|
KeyError |
映射中没有这个键 |
|
MemoryError |
内存不足错误(对 Python 解释器来说非致命) |
|
NameError |
未声明/未初始化的对象(非属性) |
|
UnboundLocalError |
访问一个未初始化的局部变量 |
|
ReferenceError |
弱引用试图访问一个垃圾回收的对象 |
|
RuntimeError |
执行过程中的通用默认错误 |
|
NotImplementedError |
未实现的方法 |
|
SyntaxError |
Python 语法错误 |
|
IndentationError |
不适当的缩进 |
|
TabError⑦ |
不当的制表符和空格 |
|
SystemError |
通用解释器系统错误 |
|
TypeError |
类型的无效操作 |
|
ValueError |
给定了无效参数 |
|
UnicodeError⑧ |
Unicode 相关错误 |
|
UnicodeDecodeError |
解码过程中的 Unicode 错误 |
|
UnicodeEncodeError |
编码过程中的 Unicode 错误 |
|
UnicodeTranslateError⑨ |
转换过程中的 Unicode 错误 |
|
Warning⑩ |
所有警告的基类 |
|
DeprecationWarning⑩ |
弃用特性的警告 |
|
FutureWarning⑨ |
警告在未来将会改变语义的结构 |
|
OverflowWarning |
自动长时间升级的旧警告 |
|
PendingDeprecationWarning⑨ |
与未来将会弃用的特性相关的警告 |
|
RuntimeWarning⑩ |
可疑运行时行为相关的警告 |
|
SyntaxWarning⑩ |
可疑语法相关的警告 |
|
UserWarning⑩ |
用户代码产生的警告 |
① Python 2.5 中新增。
② Python 2.5 之前版本中,SystemExit 继承自 Exception。
③ Python 2.5 之前版本中,KeyboardInterrupt 继承自 StandardError。
④ Python 1.5 中新增,基于类的异常替换字符串时发布的版本。
⑤ Python 2.2 中新增。
⑥ 仅仅用于 Python 1.5~2.4.x。
⑦ Python 2.0 中新增。
⑧ Python 1.6 中新增。
⑨ Python 2.3 中新增。
⑩ Python 2.1 中新增。
Python 2.2 中新增,但 Python 2.4 中移除。
B.13 类的特殊方法
表 B-13 列出了特殊方法集合,通过实现它们,允许用户自定义对象具有 Python 标准类 型的行为和功能。
表 B-13 自定义类的特殊方法

基本自定义
|
C. init (self[, arg1, ...]) |
构造函数(附带任何可选参数) |
|
C. new (self[, arg1, ...])① |
构造函数(附带任何可选参数);通常用于创建不可变数据类型的子类 |
|
C. del (self) |
析构函数 |
|
C. str__(self) |
可打印字符串表示;str()内置方法和 print 语句 |
|
C. repr__(self) |
可计算字符串表示;repr()内置方法和″操作符 |
|
C. unicode (self)② |
Unicode 字符串表示;repr()内置方法和' '操作符 |
|
C. call (self, *args) |
表示可调用的实例 |
|
C. nonzero (self ) |
为对象定义 False 值;bool()内置方法(自版本 2.2 起) |
|
C. len (self) |
"Length"(适用于类);len()内置方法 |
对象(值)比较③
|
C. cmp (self, obj) |
对象比较;cmp()内置方法 |
|
C. lt (self, obj) 和 C. le (self, obj) |
小于/小于或等于;<和<=操作符 |
|
C. gt (self, obj) 和 C. ge (self, obj) |
大于/大于或等于;>和>=操作符 |
|
C. eq (self, obj) 和 C. ne (self, obj) |
等于/不等于;==、!=和<>操作符 |
属性

|
特殊方法 |
描述 |
|
C. setattr (self, attr, val) |
设置属性;setattr()内置方法 |
|
C. delattr__(self, attr) |
删除属性;del 语句 |
|
C. getattribute__(self, attr)① |
获取属性;getattr()内置方法 |
|
C. get (self, attr) |
获取属性;getattr()内置方法 |
|
C. set (self, attr, val) |
设置属性;setattr()内置方法 |
|
C. delete (self, attr) |
删除属性;del 语句 |
自定义类/模拟类型
|
数值类型:二进制操作符④ |
|
|
C. *add (self, obj) |
加法;+操作符 |
|
C. *sub (self, obj) |
减法;−操作符 |
|
C. *mul (self, obj) |
乘法;*操作符 |
|
C. *div (self, obj) |
除法;/操作符 |
|
C. *truediv (self, obj)⑥ |
真除法:/操作符 |
|
C. *floordiv (self, obj)⑤ |
向下除法;//操作符 |
|
C. *mod (self, obj) |
模/余数;%操作符 |
|
C. *divmod (self, obj) |
除法和模运算;divmod()内置方法 |
|
C. *pow (self, obj[, mod]) |
求幂;pow()内置方法;**操作符 |
|
C. *lshift (self, obj) |
左移;<<操作符 |
|
C. *rshift (self, obj) |
右移;>>操作符 |
|
C. *and (self, obj) |
位与;&操作符 |
|
C. *or__(self, obj) |
位或;|操作符 |
|
C. *xor__(self, obj) |
位异或;^操作符 |
数值类型:一元操作符
|
C. neg (self) |
一元非 |
|
C. pos (self) |
一元无变化 |
数值类型:一元操作符
|
C. abs (self) |
绝对值;abs()内置方法 |
|
C. invert (self) |
位倒置;~操作符 |
数值类型:数值转换
|
C. complex (self, com) |
转换成复数;complex()内置方法 |
|
C. int (self) |
转换成 int 类型;int()内置方法 |
|
C. long (self) |
转换成 long 类型;long()内置方法 |
|
特殊方法 |
描述 |
|
C. float (self) |
转换成 float;float()内置方法 |
数值类型:基础表示(字符串)
|
C. oct (self) |
八进制表示;oct()内置方法 |
|
C. hex (self) |
十六进制表示;hex()内置方法 |
数值类型:数值强制转换

序列类型④
|
C. len (self) |
序列中条目的数量 |
|
C. getitem__(self, ind) |
得到单个序列元素 |
|
C. setitem__(self, ind, val) |
设置单个序列元素 |
|
C. delitem__(self, ind) |
删除单个序列元素 |
|
C. getslice (self, ind1, ind2) |
获取序列切片 |
|
C. setslice (self, i1, i2, val) |
获取序列切片 |
|
C. delslice (self, ind1, ind2) |
删除序列切片 |
|
C. contains (self, val)⑥ |
测试序列成员;in 关键字 |
|
C. *add (self, obj) |
连接;+操作符 |
|
C. *mul (self, obj) |
复制;*操作符 |
|
C. iter (self)⑤ |
创建迭代器类;iter()内置方法 |
映射类型
|
C. len (self) |
散列中条目的数量 |
|
C. hash (self) |
散列函数值 |
|
C. getitem__(self, key) |
用给定键获取对应的值 |
|
C. setitem__(self, key, val) |
用给定键设置对应的值 |
|
C. delitem__(self, key) |
用给定键删除对应的值 |
① Python 2.2 中新增;仅仅用于新型类。
② Python 2.3 中新增。
③ 除了 cmp()之外,其他所有都是 Python 2.1 中新增的。
④"*"或者什么都没有(self OP obj),"r"(obj OP self),或者"i"表示就地操作(Python 2.0 中新增),即 add 、
radd 或 iadd 。
⑤ Python 2.2 中新增。
⑥ Python 1.6 中新增。
B.14 Python 操作符汇总
表 B-14 列出了 Python 操作符的完整集合,以及它们适用的标准类型。操作符按优先级 从最高到最低排序,共享相同阴影组的拥有相同的优先级。
表 B-14 Python 操作符(一元的)
|
Operatora① |
int② |
long |
float |
complex |
str |
list |
tuple |
dict |
set, frozenset③ |
|
[] |
· |
· |
· |
||||||
|
[:] |
· |
· |
· |
||||||
|
** |
· |
· |
· |
· |
|||||
|
+† |
· |
· |
· |
· |
|||||
|
-† |
· |
· |
· |
· |
|||||
|
~† |
· |
· |
|||||||
|
* |
· |
· |
· |
· |
· |
· |
· |
||
|
/ |
· |
· |
· |
· |
|||||
|
// |
· |
· |
· |
· |
|||||
|
% |
· |
· |
· |
· |
· |
||||
|
+ |
· |
· |
· |
· |
· |
· |
· |
||
|
- |
· |
· |
· |
· |
· |
||||
|
<< |
· |
· |
|||||||
|
>> |
· |
· |
|||||||
|
& |
· |
· |
· |
||||||
|
^ |
· |
· |
· |
||||||
|
| |
· |
· |
· |
||||||
|
< |
· |
· |
· |
· |
· |
· |
· |
· |
· |
|
> |
· |
· |
· |
· |
· |
· |
· |
· |
· |
|
<= |
· |
· |
· |
· |
· |
· |
· |
· |
· |
|
>= |
· |
· |
· |
· |
· |
· |
· |
· |
· |
|
= = |
· |
· |
· |
· |
· |
· |
· |
· |
· |
|
!= |
· |
· |
· |
· |
· |
· |
· |
· |
· |
|
<> |
· |
· |
· |
· |
· |
· |
· |
· |
· |
|
is |
· |
· |
· |
· |
· |
· |
· |
· |
· |
|
is not |
· |
· |
· |
· |
· |
· |
· |
· |
· |
|
in |
· |
· |
· |
· |
|||||
|
not in |
· |
· |
· |
· |
|||||
|
not† |
· |
· |
· |
· |
· |
· |
· |
· |
· |
|
and |
· |
· |
· |
· |
· |
· |
· |
· |
· |
|
or |
· |
· |
· |
· |
· |
· |
· |
· |
· |
① 也可以包括相应的赋值操作符。
② 涉及布尔类型的操作将对操作数进行,例如 ints.f。
③(两种)集合类型都是 Python 2.4 中新增的。
浙公网安备 33010602011771号