python基础-is 和==的区别及编码和解码
is 和 == 的区别
# 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) # a = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' # b = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' # 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 #总结: # == 比较 比较的俩边的值 # is 比较 比较的是内存地址 id()
#字符串
# a = 'alex'
# b = 'alex'
# print(a is b) #True
#数字
# n = 10
# n1 = 10
# print(n is n1) #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
2. 编码和解码
ascii 码: 不支持 中文 支持 英文 数字 符号 8位 一个字节 gbk码 国标: 支持 中文,英文,数字,符号 英文 16位 二个字节 中文 16位 二个字节 unicode 万国码 支持 中文,英文,数字,符号 英文 32 位 四个字节 中文 32位 四个字节 utf-8 长度可变的万国码 最少用8位 英文 8位 一个字节 中文 24位 三个字节 Python3中 程序运行阶段 使用的是unicode 显示所有的内容 bytes类型 传输和存储都是使用bytes pycharm 存储的时候默认是使用utf-8
编码和解码
encode(编码方式) ---- 拿到明文编码后对应的字节
decode(编码方式) -----将编码后的字节解码成对应的明文
注意: 用什么进行编码就要什么进行解码 不然后会懵逼!
# s = 'alex' # # print(s.encode('utf-8')) # 编码 encode('utf-8') utf-8 是指定要编码成什么样的编码类型 # # print(s1.decode('utf-8')) # # # bytes # # b'alex' # print(s.encode('gbk')) # print(s.encode('ascii')) s = '饿了嘛' s1 = s.encode('utf-8')#b'饿了吗'#b'\xe9\xa5\xbf\xe4\xba\x86\xe5\x90\x97' utf-8中文占3个字节 print(s1) print(s.encode('gbk')) #b'\xb6\xf6\xc1\xcb\xc2\xf0' gbk中文占2个字节 print(s1.decode('utf-8')) print(s1.decode('gbk'))# 会报错,长度不一样,而且即使长度一样转出来也看不懂 #所以以什么编码就用什么解码
幻想毫无价值,计划渺如尘埃,目标不可能达到。这一切的一切毫无意义——除非我们付诸行动。