zoukankan      html  css  js  c++  java
  • python全栈开发 随笔 'is' 和 == 的比较知识与区别 编码和解码的内容及转换

    python

    一. is 和 == 的区别;

    == 比较的是两边的值.

     a = 'alex' b = 'alex' print(a = b) #True 

     a = 10 b = 10 print(a = b) # True 

     a= [1,2,3] b= [1,2,3] print(a = b ) #True 

    is 比较的是内存地址         id( )

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

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

     # li = [1,2,3] # print(id(li)) #38922760 

    (1)字符串的 is 比较

     # a = 'alex' # b = 'alex' # print(a is b) #True 

    (2)数字的 is 比较

     # n = 10 # n1 = 10 # print(n is n1) #True 

    小数据池: 数字的小数据池范围  -5~ 256

                       # n = -6 # n1 = -6 # print(n is n1) #False 

                        # n = -5 # n1 = -5 # print(n is n1) #True 

                    字符串中如果有特殊字符,他们的内存地址就不一样;

                        # a = 'alex@' # a1 = 'alex@' # print(a is a1) # Fales 

                    字符串中单个 * 20以内的他们的内存地址一样,单个 * 21 以上的内存地址不一致.

                       # a = 'a'*21 # b = 'a'*21 # print(a is b) # Flase 

    (3)列表的 is 比较

     li =[1,2,3] li2 =[1,2,3] print(li is li2) #False 

    (4)元组的 is 比较

     tu =(1,2,3) tu1 =(1,2,3) print(tu is tu1) # False 

    (5)字典的 is 比较

    dic1 = {'name':'alex'}
    dic = {'name':'alex'}
    print(dic1 is dic)    #False

    注意:pycharm是个坑,一个py文件中所有的相同字符串  一般都是使用一样的内存地址.

    二.编码和解码

    ascii 码:

    不支持 中文 

    支持 英文 数字 符号

    8位     一个字节 

    gbk 码  国标码

    支持 中文 英文 数字 符号

    英文  16位        2个字节

    中文  16位        2个字节

    unicode   万国码

     支持 中文 英文 数字 符号

    英文  32位      4个字节

    中文  32位      4个字节

    utf - 8      长度可变的万国码     最少用 8位

    英文      8位    1个字节

    中文      24位     3个字节

    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'
    s = '饿了'
    s1 = s.encode('gbk')      #b'饿了吗'    #b'xe9xa5xbfxe4xbax86xe5x90x97'
    print(s.encode('gbk'))                 #b'xb6xf6xc1xcbxc2xf0'
    print(s1)
    print(s1.decode('utf-8'))

    注意用什么进行编码就要用什么解码

    不然最后会懵逼

  • 相关阅读:
    bzoj 1911: [Apio2010]特别行动队
    bzoj 1096: [ZJOI2007]仓库建设
    bzoj 3522: [Poi2014]Hotel
    bzoj 3572: [Hnoi2014]世界树
    bzoj 1177: [Apio2009]Oil
    bzoj 1912: [Apio2010]patrol 巡逻
    bzoj 3573: [Hnoi2014]米特运输
    bzoj 3997: [TJOI2015]组合数学
    cf 506 A. Mr. Kitayuta, the Treasure Hunter
    cf 500 D. New Year Santa Network
  • 原文地址:https://www.cnblogs.com/qq1426794755/p/9406835.html
Copyright © 2011-2022 走看看