代码改变世界

python数据类型

2018-04-07 21:29  邪月三猩  阅读(241)  评论(0)    收藏  举报

数据类型: 数字 字符串 布尔 列表 元组 字典 集合

  1. 数字 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类型的格式

  1. 字符串 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,'*')) 
                
			

                  

            
  1. 布尔值 bool

布尔值就两种:True,False。就是反应条件的正确与否。
真   1   True 非空数据类型 如:[''],' ' " "
假   0   False 空的数据类型 如:[] '' "" None 
  1. 列表 list

  2. 元组 tuple

  3. 字典 dict

  4. 集合 set

  5. 参考表

  • 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="")

根据翻译表 str256 个字符)翻译 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.52.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)

转换成 floatfloat()内置方法

数值类型:基础表示(字符串)

 

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 中新增的。