3.23 day6 编码

a = 1000

b = 1000

print(a==b) True

#两个等号比较的是数值

#is比较的是内存位置

print(a is b) false

 

print(id(a))

print(id(b))

内存地址不一样,相当于门牌号

 

#小数据池:在一定范围内设定一样的值,共用位置节省空间

#数字 在-5-256范围

#字符串:1.如果含有特殊字符,不存在小数据池 2.单个字符在int(20)以内有小数据池

#其他都不存在数据池

 

#编码

1.编码之间的二进制互不识别

2.文件的储存和传输通过0101010,但是不能用unicode,浪费空间

 

python3当中的编码

  python3当中的str在内存中的编码方式是unicode,不能直接储存和传输

 

bytes类型的编码方式是非unicode,是utf-8和gbk

 

英文

  str:表现形式 s=‘laonanhai’

    内部编码:unicode

  bytes:表现形式 s=b‘laonanhai’

    内部编码:非unicode

中文

  str: 表现形式 s='老男孩‘

    内部编码:unicode

  bytes:表现形式 s=b'\xe8\x80\x81\xe7\x94\xb7\xe5\xad\xa9'

    内部编码:非unicode

s = '老男孩'
s1 = s.encode('utf-8')
print(s1)
编码的补充
s = 'alex'
s1 = s.encode('utf-8')
编码 unicode -> utf-8
s2 = s.encode('gbk')
编码 unicode -> gbk

s3 = s1.decode('utf-8')
print(s3)
解码 utf-8转化成unicode

如何将gbk转化成utf-8?是不能直接转化的,只能先转到unicode,再转换
s = 'alex'
s1 = s.encode('gbk')
print(s1)
s2=s1.decode('gbk').encode('utf-8')
print(s2)

s = '老男孩'
s1 = s.encode('gbk')
print(s1)
s2=s1.decode('gbk').encode('utf-8')
print(s2)

b'alex'
b'alex'
b'\xe8\x80\x81\xe7\x94\xb7\xe5\xad\xa9'

 

转载于:https://www.cnblogs.com/kateli/p/8648494.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值