zoukankan      html  css  js  c++  java
  • Python 基础第六天

    今日主要内容:

    1.is ,==,id的用法区别

    2.小数据池的概念

    3.编码解读2

     

    1.is,==,id的用法

    1)is 用法:is是比较内存地址.

    例:

    a = 'alex'

    b='alex'

    print(a is b)

    结果:

     

     

    a = 'alex'

    b='  alex'

    print(a is b)

    结论:

    2)==

    ==的作用是比较两边的数值是否相等,包括数字,字符串

    a = 'alex'

    b='alex'

    print(a == b)

    结果:

    a = 'alex'

    b='  alex'

    print(a is b)

    结论:

     

    3)id 查看内存地址命令

    a = 'alex'
    b='alex'
    print(id(a))
    print(id(b))

     结论:值相同

    a = 'alex'
    b='  alex'
    print(id(a))
    print(id(b))

     结论:值不同

     

    以上是对上述三个用法的简单介绍,总结:简单总结就是,如果比较数值使用'==',如果比较内存地址是否相同使用'is',如果查看内存空间地址使用'id'

    2.小数据池

    什么是小数据池:为了节省内存空间,特意开辟出的供数字,字符串一定范围公用的内存空间.

    只存在数字和字符串中,其他数据类型中没有这个概念.

    int:

    -5~256  

    str:

    1,如果含有特殊字符,不存在小数据池。
    2,str(单个) * int int > 20 不存在小数据池。

     

    3.编码补充2

    bytes 类型

    由于python3x 中 字符串(str) 在内存中的编码方式是unicode。python3x 中的str不能直接存储,和发送。

    所以要应用新的数据类型进行存储和发送,就是bytes.

     bytes 他的编码方式是非unicode(utf-8,gbk,gb2012.....)。

    对于英文:
    str: 表现形式:s = 'laonanhai'
    内部编码:unicode
    bytes:
    表现形式:s = b'laonanhai'
    内部编码:非unicode.

    对于中文:
    str: 表现形式: s = '中国'
    内部编码:unicode
    bytes: 00000001
    表现形式:s1 = b'xe4xb8xadxe5x9bxbd'
    内部编码:非unicode.

    英文形式的编码,解码:

     

     中文形式的编码解码:

    以上是简单的内存中字符串编码的一些转换,另外,bytes类型数据只针对于字符串str类型的数据转换,写的程序中除了str类型在内存中默认是Unicode外,其他还是utf-8类型.

     

  • 相关阅读:
    vue
    生成数组方式
    绕过CDN查找真实IP方法
    SQL注入WAF绕过
    缓冲区溢出的保护机制
    Redis未授权漏洞
    AFL 漏洞挖掘
    python多线程与多进程
    Java8四大核心接口示例
    @Autowired抱空指针异常解决方案
  • 原文地址:https://www.cnblogs.com/tom2ling/p/8651714.html
Copyright © 2011-2022 走看看