一.各进制的字符串转10进制~
int(‘字符串’,2[16|8]) #可以把进制形式的字符串按照2进制|16进制|8进制的方式转成10进制
例:
int('79',16)
121
int('01010101010',2)
682
int('767',8)
503
二.各进制类型转为2进制,8进制,16进制。bin,oct,hex 。
返回的结果都是字符串类型
例:
16进制转8进制
a=0x16 #22
oct(a) #'0o26'
转8进制
oct(0x16)
oct(10)
oct(0b10111)
转16进制:
hex(10)
hex(0o26)
hex(0b101110)
转2进制:
>>> bin(0x16)
'0b10110'
>>> bin(0o26)
'0b10110'
>>> bin(22)
'0b10110'
三.ascii码与单个字符之间的转换:
ord() :返回字符对应的ascii码或者unicode码
chr():返回ascii码或者unicode码对应的字符
例:
>>> ord('你')
20320
>>> chr(20320)
'你'
>>> ord('a')
97
>>> chr(97)
'a'
三.unicode与字符串之间的编码转换:
1.python2与python3中字符串类型的区别:
在python3中字符串分为 str 和 bytes 两种类型 :
Str To Bytes 使用 encode(), 编码
Bytes To Str 使用 decode(), 解码
在python2中字符串分为 unicode 和 str 类型
Str To Unicode 使用decode(), 解码
Unicode To Str 使用encode(), 编码
2.字符串转unicode编码
python3:
>>> s="你好"
>>> s1=s.encode('unicode-escape')
>>> s1
b'\\u4f60\\u597d' #字节串类型(bytes)的unicode编码串
>>> s1.decode()
'\\u4f60\\u597d' #字符串类型(str)的unicode编码串
注意:
python3中移除了unicode类型,也就是没有形如:u‘\u4f60’类型的的编码对象了。
python2:
(1)
>>> s="你好"
>>> s.decode('gbk')
u'\u4f60\u597d' # unicode类型编码串
(2)或
>>> unicode(s,"gbk") #gbk可替换utf-8等
u'\u4f60\u597d' # unicode类型编码串
(3)或
>>> s=u'你好'
>>> s
u'\u4f60\u597d' #unicode类型编码串
>>> s1=s.encode('unicode-escape')
>>> s1
'\\u4f60\\u597d' # str类型编码串
3.unicode编码串转字符串
python2:
(1)
>>> s=u'\u4f60\u597d' #unicode类型编码串
>>> print s
你好
(2)
>>> s1='\\u4f60\\u597d' #str类型编码串
>>> s1.decode('unicode-escape')
u'\u4f60\u597d'
>>> print s1.decode('unicode-escape')
你好
python3
(1)
>>> s
b'\\u4f60\\u597d' #bytes类型编码串
>>> s.decode('unicode-escape')
'你好'
(2)
>>> s1
'\\u4f60\\u597d' #str类型编码串
>>> s1.encode('utf-8').decode('unicode_escape')
'你好'