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

     

  • 相关阅读:
    flock对文件锁定读写操作的问题 简单
    hdu 2899 Strange Fuction(二分)
    hdu 2199 Can you solve this equation? (二分)
    poj 3080 Blue Jeans (KMP)
    poj 2823 Sliding Window (单调队列)
    poj 2001 Shortest Prefixes (trie)
    poj 2503 Babelfish (trie)
    poj 1936 All in All
    hdu 3507 Print Article (DP, Monotone Queue)
    fzu 1894 志愿者选拔 (单调队列)
  • 原文地址:https://www.cnblogs.com/tom2ling/p/8651714.html
Copyright © 2011-2022 走看看