标签:pychar 可变 code char 存储 等等 byte arm col
a = ‘alex‘ b = ‘alex‘ print(a == b) True n = 10 n1 = 10 print(n == n1) True li1 = [1,2,3] li2 = [1,2,3] print(li1 == li2) True
a = ‘alex‘ print(id(a)) # 36942544 内存地址 n = 10 print(id(n)) #1408197120 li = [1,2,3] print(id(li)) #38922760
a = ‘alex@‘ a1 = ‘alex@‘ print(a is a1) # Fales n = 5//2 n1 = 2 print(n is n1) #True a = ‘a‘*21 b = ‘a‘*21 print(a is b)
n = -6 n1 = -6 print(n is n1) #False n = -5 n1 = -5 print(n is n1) #True n = 257 n1 = 257 print(n is n1) #True
单个字符串*20以内的内存地址是一样的(字符串中不能有特殊符号如:+ - * / @ ! ......等等)
单个字符串*20以上的内存地址是不相同
a = ‘alex@‘ a1 = ‘alex@‘ print(a is a1) # Fale
a = ‘aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa‘ b = ‘aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa‘ print(a is b) # True
li =[1,2,3] li2 =[1,2,3] print(li is li2) #False
tu =(1,2,3) tu1 =(1,2,3) print(tu is tu1) # False
dic1 = {‘name‘:‘alex‘} dic = {‘name‘:‘alex‘} print(dic1 is dic) #False
注意:pycharm是个坑, 一个py文件中所有相同的字符串 一般都是使用一样的内存地址
编码有: asiic,unicode,gbk,utf-8,utf-16
ascii 码:不支持中文,支持英文,数字,符号, 8位,一个字节
gbk码:国标码,支持中文,英文,数字,符号. 英文每16位两个字节, 中文16位 二个字节
unicode : 万国码,支持中文,英文,数字,符号, 英文 32 位 四个字节. 中文 32位 四个字节
utf-8:目前使用最多的编码, 就是长度可变的万国码,最少用8位. 英文 8位 一个字节 中文 24位 三个字节
Python3中程序运行阶段使用的是unicode,可以显示所有的内容
bytes类型:传输和存储都是使用bytes
pycharm 存储的时候默认是使用utf-8
.encode(‘编码‘) 拿到明文后编码后对应的二进制的字节
.decode(‘编码‘) 将编码后的字节解码成对应的明文
它俩操作都要通过unicode作为中间桥梁来链接
s = ‘alex‘ # print(s.encode(‘utf-8‘)) # 编码 encode(‘utf-8‘) utf-8 是指定要编码成什么样的编码类型 # print(s1.decode(‘utf-8‘)) # # bytes # b‘alex‘ # s = ‘饿了‘ # s1 = s.encode(‘gbk‘) #b‘饿了吗‘ #b‘\xe9\xa5\xbf\xe4\xba\x86\xe5\x90\x97‘ # print(s.encode(‘gbk‘)) #b‘\xb6\xf6\xc1\xcb\xc2\xf0‘ # print(s1) # print(s1.decode(‘utf-8‘))
标签:pychar 可变 code char 存储 等等 byte arm col
原文地址:https://www.cnblogs.com/--kai/p/9409416.html