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'))# 会报错,长度不一样,而且即使长度一样转出来也看不懂
#所以以什么编码就用什么解码




posted @ 2019-11-12 17:27  断浪狂刀忆年少  阅读(229)  评论(0编辑  收藏  举报