编码转化
id查询内存地址。 name = 'alex' print(id(name)) name1 = 'alex' name2 = 'alex' print(name1==name2) '='赋值运算 ‘==’比较数值相同 is 内存地址是否相同 小数据池。int str 在一定范围内,如果两个数值相同,为了节省内存,共用一个内存地址。 int: -5~256 str:1只包含数字或者字母元素,有非字母元素就不是小数据池。 2.单个字母* int(<21)存在小数据池。 剩下的类型都不存在
1.不同的密码本之间的二进制是不能互相识别的,容易报错或者产生乱码。
2.计算机的文件存储和传输都是0101010(gbk,utf-8,ascii.gb2312等)不能是unicode.
大前提:python3x,编码。
数据类型:
int
str
bytes:str拥有的所有方法,bytes都有。
bool
list
tuple
dict
set
python3x 内存中的编码方式是unicode
英文:
str:表现形式 name = "alex"
内部编码:unicode
bytes:表现形式:name1 = b"alex"
内部编码:非unicode
中文:
str:表现形式 name = "中国“
内部编码:unicode
bytes:表现形式:b'\xe4\xb8\xad\xe5\x9b\xbd'
内部编码:非unicode
bytes与str如何转化
str-------->bytes
b1=str.encode('utf-8')
bytes------->str
s1=bytes.decode('utf-8')
str ---> bytes
s1 = '中国'
b1 = s1.encode('utf-8') # encode 编码
# b2 = s1.encode('gbk')
# print(b1)
# print(b2)
s2 = b1.decode('utf-8') # decode 解码
print(s2)
utf-8 bytes ---> gbk bytes
s1 = b"alex"
print(s1.capitalize())
python3为什么存在bytes类型?(默写)
文件的下载与传输都是str类型,str的编码方式是unicode,bytes的编码方式是utf-8,机器识别不了unicode,而bytes又是类似于str的类型,
所以str先转化成bytes类型,在进行文件的传输与下载。
posted on 2018-05-27 13:43 liangliang123456 阅读(146) 评论(0) 编辑 收藏 举报