python学习第六天

1. 小数据池, 常量池,
id() 查看变量的内存地址
is和==
is 判断内存地址是否一致
== 判断内容是否一致
小数据池的作用:
为了快速的创建字符串对象, 可以减少内存的浪费

用缓存的前提:数据可以被共享。不可变.
2. 再谈编码
ascii: 数字,字母, 特殊字符。
字节: 8bit
gbk: 国标码。16bit, 2byte

unicode: 万国码。32bit, 4byte

utf-8:可变长度的unicode
英文: 1byte 8bit
欧洲文字: 2byte,16bit
中文: 3byte, 24bit

python中的内存里使用的是unicode
s = "你好啊"

python2中用的是ascii
python3用的是unicode

字符串如果传输:
encode(编码) 结果是bytes类型
接受到bytes之后。 需要解码
decode(编码). 结果是字符串

 

# 重点
# # GBK
# bs = b'\xc2\xed\xbb\xaf\xcc\xda'
# # 1. 解码成unicode(str)
# s = bs.decode("gbk")
# # 2. 编码成utf-8
# bss = s.encode("utf-8")
# print(bss) # b'\xe9\xa9\xac\xe5\x8c\x96\xe8\x85\xbe'

 


'''
实现编码gbk与utf_8之间的转换
'''
while 1:
choice = input('(\'GBK\' 转 \'utf-8\' ),请选择A\n(\'utf-8\' 转 \'GBK\' ),请选择B\n请输入你的选择:')

## GBK 转 utf-8
if choice.upper() == 'A':

## 0.输入GBK编码
code_gbk = input('请输入GBK编码:')

## 1.将字符串转换为字节
s_gbk = bytes(code_gbk,'gbk')

## 2. 解码成unicode(str)
middle_gbk = s_gbk.decode("gbk")

## 3. 编码成utf-8
outcome_gbk = middle_gbk.encode("utf-8")

print('utf-8编码为:%s' % outcome_gbk)

break

## utf-8 转 GBK
elif choice.upper() == 'B':

## 0.输入utf-8编码
code_utf = input('请输入utf-8编码:')

## 1.将字符串转换为字节
s_utf = bytes(code_utf, 'utf-8')

## 2. 解码成unicode(str)
middle_utf = s_utf.decode("utf-8")

## 3. 编码成gbk
outcome_utf = middle_utf.encode("gbk")

print('utf-8编码为:%s' % outcome_utf)

break

else:
print('输入有误,请重新输入\n\n\n\n\n')

posted @ 2018-10-24 21:42  EuanXu  阅读(76)  评论(0编辑  收藏  举报