zoukankan      html  css  js  c++  java
  • python基础之小数据池,is和==区别 编码问题

    主要内容 小数据池,is和==区别 编码问题

    小数据池 一种缓存机制,也称为驻留机制,是为了能更快提高一些字符串和整数的处理速度

    is 和 == 的区别
    == 主要指对变量值是否相等的判断,只要数值相同一定为真
    is 主要是对变量内存地址是否相同的判断,变量值相同不一定为真,但是变量内存地址相同,则变量一定相同。 tips:可通过id()来查询变量id

    why: 1.为什么会存在不同变量共用一个内存地址的情况?
    1.前面说到的小数据池,即缓存。一部分字符串会被放在缓存中被公用,以提高处理速度

    why: 2.为什么command命令窗口中和在Pycharm中同样输入给a,b赋值,得到的结果不一样?
    1.python程序是由代码块构成的. 一个代码块的文本作为python程序执行的单元.一个模块, 一个函数, 一个类, 甚至每一个command命令都是一个代码块. ⼀个文件也是一个代码块
    2.在command命令窗口,a,b赋值是两个命令,而在Pycharm中认为是执行了一个文件(文件执行时(同⼀个代码块) 会把a, b两个变量量指向同⼀一个对象.)。所以结果会不一样

    编码回顾:
    1. ASCII : 最早的编码. ⾥面有英文大写字母, 小写字母, 数字, ⼀一些特殊字符. 没有中⽂文,8个01代码, 8个bit, 1个byte
    2. GBK: 中⽂文国标码, ⾥面包含了了ASCII编码和中文常⽤用编码. 16个bit, 2个byte
    3. UNICODE: 万国码, ⾥面包含了了全世界所有国家文字的编码. 32个bit, 4个byte, 包含了了ASCII
    4. UTF-8: 可变⻓长度的万国码. 是unicode的⼀一种实现. 最⼩小字符占8位
    1.英文: 8bit 1byte
    2.欧洲文字:16bit 2byte
    3.中文:24bit 3byte


    解码和编码 不同编码之间存在转换的问题 tips:python2程序编码是ASCII 而python3位unicode
    编码
    a = "呵呵哈哈"
    s = a.encode("utf-8")
    # s = a.encode("gbk")
    print(s)
    解码
    a = b'xbaxc7xbaxc7xb9xfexb9xfe' #gbk
    a1 = b'xe5x91xb5xe5x91xb5xe5x93x88xe5x93x88' #utf-8
    s = a.decode("gbk")
    s1 = a1.decode("utf-8")
    print(s,s1)

    why:如何将GBK 转换为 utf-8? #先转成Unicode再转换为utf-8
    a = b'xbaxc7xbaxc7xb9xfexb9xfe' #gbk
    s = a.decode("gbk") #转成unicode
    b = s.encode("utf-8") #转成utf-8
    print(b) #得到 utf-8 b'xe5x91xb5xe5x91xb5xe5x93x88xe5x93x88'
  • 相关阅读:
    tomcat文件夹没有部署项目和Tomcat中webapps中没有运行项目-上传下载文件和图片
    eclipse和myeclipse设置默认编码格式为UTF-8
    mybatis基础学习1---(配置文件和sql语句)
    idea 快捷键以及包含字符串文件搜索
    idea 设置项目编码
    idea 取消代码下波浪线
    idea打开可选项目
    idea打印gc日志
    idea运行scala有问题
    idea简单使用
  • 原文地址:https://www.cnblogs.com/Mixtea/p/9844087.html
Copyright © 2011-2022 走看看