python的 == 和 is,编码和解码

Posted 墨萧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python的 == 和 is,编码和解码相关的知识,希望对你有一定的参考价值。

is和 ==

== 比较两边的值

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

 

is 比较内存地址

查询内存地址  id()

a = alex
print(id(a))   # 36942544  内存地址

n = 10
print(id(n))     #1408197120

li = [1,2,3]
print(id(li))      #38922760
a = [email protected]
a1 = [email protected]
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)

 

小数据池

范围: -5~256

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 = [email protected]
a1 = [email protected]
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‘xe9xa5xbfxe4xbax86xe5x90x97‘
# print(s.encode(‘gbk‘))                 #b‘xb6xf6xc1xcbxc2xf0‘
# print(s1)
# print(s1.decode(‘utf-8‘))

注意: 用什么进行编码就要什么进行解码  不然后会懵逼!

 

  

 


以上是关于python的 == 和 is,编码和解码的主要内容,如果未能解决你的问题,请参考以下文章

python之 is和== 以及编码和解码

Python 编码

is == 编码与解码

is 和“==” 的区别,编码和解码

'is' '==' 编码,解码

is 和 ==,编码及解码