• Prthon编码和解码/is 和 ==


    一. is 和 == 的区别

    小数据池

    数字小数据池的范围 -5 ~ 256
    字符串中如果有特殊字符他们的内存地址就不一样
    字符串中单个*20以内他们的内存地址一样,单个*21以上内存地址不一致
     1 a = 'disman'
     2 a1 = 'disman'
     3 print(a is a1)    # Fales
     4 
     5 n = 5//2
     6 n1 = 2
     7 print(n is n1)    #True
     8 
     9 a = 'a'*21
    10 b = 'a'*21
    11 print(a is b)
    12 
    13 a = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
    14 b = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
    15 print(a is b)
    16 
    17 n = -6
    18 n1 = -6
    19 print(n is n1)  #False
    20 
    21 n = -5
    22 n1 = -5
    23 print(n is n1)    #True
    24 
    25 n = 257
    26 n1 = 257
    27 print(n is n1)     #True
            总结:

    == 比较 比较的俩边的值

    is 比较 比较的是内存地址 id()
    二. 编码和解码

    ascii 码:

    不支持 中文

    支持 英文 数字 符号

    8位 一个字节

    gbk码 国标:

    支持 中文,英文,数字,符号

    英文 16位 二个字节

    中文 16位 二个字节


    unicode 万国码

    支持 中文,英文,数字,符号

    英文 32 位 四个字节

    中文 32位 四个字节


    utf-8 长度可变的万国码 最少用8位

    英文 8位 一个字节
    中文 24位 三个字节


    Python3中 程序运行阶段 使用的是unicode 显示所有的内容

    bytes类型

    传输和存储都是使用bytes

    pycharm 存储的时候默认是使用utf-8
    
    
    总结:

    is 和 == 区别

    is 比较内存地址

    id() ---- 获取内存地址

    小数据池:

    数字的小数据池范围是 -5 ~ 256

    字符串:

    字符串中不能包含特殊符号 + - * / @ 等等
    字符串单个字符*20以内内存地址都是一样的,单个字符*21以上内存地址不一致

    注意: pycharm是个坑, 一个py文件中所有相同的字符串 一般都是使用一样的内存地址

    == 比较俩边的值

    编码和解码

    encode(编码方式) ---- 拿到明文编码后对应的字节

    decode(编码方式) -----将编码后的字节解码成对应的明文



    注意: 用什么进行编码就要什么进行解码 不然后会懵逼!
    python2的版本. 默认使用ASCII
    python3的版本. 默认使用unicode. 在计算的时候会非常方便

    在网络传输和数据存储的时候. 换gbk, utf-8(90%)
    编码(encode): unicode变成你需要的编码
    编码之后的内容是字节(bytes类型)
    解码(decode): 把目标bytes转换成字符串
    
    
  • 相关阅读:
    前端 echar 折线图
    CAN总线的物理层和数据链路层相关内容的ISO标准规范文档
    IP协议的使用
    “代理”连接异常排查
    协议栈的设计
    UDS物理寻址和功能寻址的差别之一
    OSI的7层模型
    关于interface的不同的语境下的含义
    大文件上传:秒传、断点续传、分片上传
    使用Maven Helper解决Maven插件冲突
  • 原文地址:https://www.cnblogs.com/shagudi/p/10864552.html
Copyright © 2020-2023  润新知