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类型.

     

  • 相关阅读:
    C语言判断字符串是否是 hex string的代码
    红米手机使用应用沙盒一键修改sdk信息
    Python illustrating Downhill simplex method for minimizing the user-supplied scalar function的代码
    荣耀5.0以上手机(亲测有效)激活xposed框架的经验
    java压缩指定目录下的所有文件和文件夹的代码
    荣耀7.0系统手机最简单激活Xposed框架的步骤
    小米平板7.0系统如何不root激活Xposed框架的方法
    安装与配置Flutter开发环境
    Spring Boot 2
    Flutter介绍
  • 原文地址:https://www.cnblogs.com/tom2ling/p/8651714.html
Copyright © 2011-2022 走看看