类型转换

类型转换

原来学过:
int(1)
float(‘1.5’)
str(‘1’)
type()
isinstance()

数字进制转换

1.十进制转二进制:bin() binary int()
bin()十进制转二进制,int()二进制转十进制

bin(228)   →  '0b11100100'   
bin(1000)  →  '0b1111101000'
int(0b11100100)  →   228     
int(0xe4)  →  228
228 = 0b11100100 = 0xe4
为了区分普通的十进制,二进制数字特殊前缀0b。

2.十六进制(hexadecimal
)、十进制互转 hex()
hex()十进制转十六进制,int()十六进制转十进制

hex(228)  →   0xe4
int(0xe4)  →  228
int(0b11100100)  →  228
十六进制数字特殊前缀0x

3.前缀

b前缀。如:b'\xe4'
u前缀:如:a=u'小明',u代表Unicode编码,python2中常见,显示告诉程序后面的中文字符用Unicode编码,python3默认Unicode编码,所以不用写。
示例\u0x3e\u0x12,中间产物,被utf8存储后才会形成字节。
r前缀,raw原始字符串。示例print(r'你好\n世界')你好\n世界。
场景:爬虫数据分析要求原始信息。
字符串和字节相互转换

1.编码字符串.encode(encoding=’’) 返回二进制(进行编码)
2.二进制.decode(encoding=’’) 返回文字信息(进行解码)

'楠木'.encode()        # 默认用的是utf8编码
b'\xe6\xa5\xa0\xe6\x9c\xa8'

'楠木'.encode(encoding='utf8')       # 字符串转二进制用encode,编码
b'\xe6\xa5\xa0\xe6\x9c\xa8'
b'\xe6\xa5\xa0\xe6\x9c\xa8'.decode(encoding='utf8')     # 二进制转字符串用decode,解码
'楠木'

'楠木'.encode(encoding='gbk')
b'\xe9\xaa\xc4\xbe'
b'\xe9\xaa\xc4\xbe'.decode(encoding='gbk')
'楠木'

前缀b表示字节、二进制。因为二进制写起来比较长,所以输出的是十六进制\xe4。\x特殊前缀表示十六进制。0xe4是针对数字。
chr(),ord()

ord() 返回一个字符对应ascii或其他编码存储方式的十进制

ord('a')  →  97
bin(97)  →   '0b1100001'
ord('中')  →   20013
bin(20013)  →  '0b100111000101101'

十进制转编码对应的字符
场景:跟random()配合使用,生成验证码中的随机字母。判断是否中文或英文。

chr(97)  →  'a'
chr(0b1100001)  →  a
chr(20013)   →   中
chr(0b100111000101101)   →   中
字节可以遍历

场景:硬件温湿度传感器,返回的是一堆字节。

for b in b'\xe4\xb8\xad':
    print(b)

>>>  228
>>>  187
>>>  173
总的来说

1.自然信息,比如我们看到的文字’中’
2.机器只理解电平高低,二进制。所以需要把自然信息’编码’成二进制。
3.ascii Unicode utf8 等编码规则。最终转成二进制存储到硬盘上。例如二进制某汉字
0b11000010b11000010b1100001
4.但是二进制看着太长了,所以输出b’\xe4\xb8\xad’
5.二进制’解码’成自然信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值