• python基础五


    id 内存地址

    name = "lliulin"
    print(id(name))
    #输出:467199291832

     is  判断的是内存地址

    name1 = "liu#"
    name2 = "liu#"
    print(name1 == name2)
    print(name1 is name2)
    #在pycharm中 输出
    输出:True
    输出:True
    #在编译器里
    输出:True
    输出:False

    python

    int str 有小数据池

    int(-5~256)是小数据池,在一个内存地址

    i  = 256
    i1= 256
    print(i is l1)
    #输出:True
    
    
    i  = 257
    i1= 257
    print(i is l1)
    #输出:False

    str:如果全是字母组成,那么True   如果非字幕出现,那么False

    如果int*str(必须是一个字母) 则20个以内  是True

    其他数据类型,没有小数据池

    编码进阶:

    1.不同编码之间,不能识别对方二进制,会报错或者乱码

    2.在你的字符串(文件)存储传输时,必须用非unicode

    python3:

    字符串:编码方式:默认都是unicode

    对于非中文:bytes:表现形式:b."alex"

                                     内部编码:utf-8  gbk 。。。(非unicode)

                         str:表现形式:"str"

                                内部编码:unicode

    转换
    name = "liulin" b = name.encode("utf-8") b1 = name.encode("gbk") print(name,type(name)) print(b,type(b)) print(b1,type(b1)) #liulin <class 'str'> #b'liulin' <class 'bytes'> #b'liulin' <class 'bytes'>

    对于中文:bytes:表现形式:b'xe5x88x98xe6x9ex97'

                     内部编码:非unicode

         str:表现形式:"中文"

                             内部编码:unicode

    转换
    name = "中国"
    b = name.encode("utf-8")
    b1 = name.encode("gbk")
    print(name,type(name))
    print(b,type(b))
    print(b1,type(b1))
    #中国 <class 'str'>
    #b'xe4xb8xadxe5x9bxbd' <class 'bytes'>
    #b'xd6xd0xb9xfa' <class 'bytes'>

     

      

  • 相关阅读:
    Java并发基础10:原子性操作类的使用
    Java并发基础09. 多个线程间共享数据问题
    Java并发基础08. 造成HashMap非线程安全的原因
    Java并发基础07. ThreadLocal类以及应用技巧
    Java并发基础06. 线程范围内共享数据
    Java并发基础05. 传统线程同步通信技术
    Java并发基础04. 线程技术之死锁问题
    我是如何从通信转到Java软件开发工程师的?
    IOS 判断耳机插入/拔出
    海量数据处理
  • 原文地址:https://www.cnblogs.com/pygg/p/8361491.html
Copyright © 2020-2023  润新知