Python对象比较和类型转换
1、Python核心数据类型
数字:int, long, float, complex(复数), bool(布尔)
字符:str, unicode
列表:list
字典:dict
元组: tuple
文件:file
可变集合:set
不可变集合:frozenset
其他类型:类类型, None
其它文件类工具:pipes, fifos, sockets
2、Python中两个对象比较
1)、值比较:对象中的数据是否相同;
2)、身份比较:两个变量名引用的是否为同一对象;
3)、类型比较:两个对象的类型是否相同;
例1:值比较
In [55]: num1=1
In [56]: num2=1
In [57]: num2 == num2
Out[57]: True
In [58]: num1 == num2
Out[58]: True
例2:身份比较
In [59]: num1 is num2
Out[59]: True
In [60]: num1=2
In [61]: num1 is num2
Out[61]: False
例3:类型比较
In [62]: type(num1) is type(num2)
Out[62]: True
In [63]: num1=1
In [64]: type(num1) is type(num2)
Out[64]: True
3、Python类型转换
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进制字符
例1:使用repr()、str()将非字符型数据转换为字符
In [68]: num=5.21
In [69]: type(num)
Out[69]: float
In [70]: num1=repr(num)
In [71]: type(num1)
Out[71]: str
In [72]: num2=str(num)
In [73]: type(num2)
Out[73]: str
In [80]: num3 = '321'
In [81]: type(num3)
Out[81]: str
例2:使用int()将字符转为整数
In [82]: num4=int(num4)
In [83]: type(num4)
Out[83]: int
例3、使用float()将整数转为浮点数
In [84]: num5=float(num3)
In [85]: print num5
321.0
In [86]: type(num5)
Out[86]: float
例4:使用list()将字符串转为列表
In [87]: str1="www.field"
In [88]: l1=list(str1)
In [89]: print l1
['w', 'w', 'w', '.', 'f', 'i', 'e', 'l','d']
In [90]: str2=str(l1)
In [91]: print str2
['w', 'w', 'w', '.', 'f', 'i', 'e', 'l','d']
例5:使用tuple()将字符串转为元组
In [92]: t1=tuple(str1)
In [93]: print t1
('w', 'w', 'w', '.', 'f', 'i', 'e', 'l','d')
例6:使用set()将字符串转为集合
In [94]: s1=set(str1)
In [95]: print s1
set(['e', 'd', 'f', 'i', 'l', '.', 'w'])
In [96]: type(l1)
Out[96]: list
In [97]: type(s1)
Out[97]: set
In [98]: type(t1)
Out[98]: tuple
例7:使用dict()构建字典
In [99]: l2=[('x',11),('y',22),('z',33)]
In [100]: print l2
[('x', 11), ('y', 22), ('z', 33)]
In [101]: dl = dict(l2)
In [102]: print dl
{'y': 22, 'x': 11, 'z': 33}
例8:使用chr():将整数转为字符
In [103]: num1=222
In [104]: c1=chr(num1)
In [105]: type(num1)
Out[105]: int
In [106]: type(c1)
Out[106]: str
例9:使用hex()将整数转换为16进制字符
In [1]: x = 10
In [2]: str1=hex(x)
In [3]: print x
10
In [4]: print str1
0xa
例10:使用bin()将整数转换为2进制字符
In [5]: str2=bin(x)
In [6]: print str2
0b1010
例11:使用oct ()将整数转换为8进制字符
In [7]: str2=oct(x)
In [8]: print str2
012