• 编码转化


    id查询内存地址。
    name = 'alex'
    print(id(name))
    name1 = 'alex'
    name2 = 'alex'
    print(name1==name2)
    '='赋值运算   ‘==’比较数值相同
    is  内存地址是否相同
    小数据池。int  str 在一定范围内,如果两个数值相同,为了节省内存,共用一个内存地址。
    int:  -5~256
    str:1只包含数字或者字母元素,有非字母元素就不是小数据池。
          2.单个字母* int(<21)存在小数据池。
    剩下的类型都不存在
    1.不同的密码本之间的二进制是不能互相识别的,容易报错或者产生乱码。
    2.计算机的文件存储和传输都是0101010(gbk,utf-8,ascii.gb2312等)不能是unicode.
    大前提:python3x,编码。
       数据类型:
                int
                 str
                 bytes:str拥有的所有方法,bytes都有。
                 bool       
                 list
                  tuple
                  dict
                  set
    python3x   内存中的编码方式是unicode
             英文:
                  str:表现形式  name = "alex"
                       内部编码:unicode
                   bytes:表现形式:name1 = b"alex"
                            内部编码:非unicode
           中文:
                 str:表现形式   name = "中国“
                       内部编码:unicode
                  bytes:表现形式:b'xe4xb8xadxe5x9bxbd'
                            内部编码:非unicode 
    bytes与str如何转化
    str-------->bytes
             b1=str.encode('utf-8')
    bytes------->str
               s1=bytes.decode('utf-8')   
    str ---> bytes
    s1 = '中国'
    b1 = s1.encode('utf-8')  # encode 编码
    # b2 = s1.encode('gbk')
    # print(b1)
    # print(b2)
    s2 = b1.decode('utf-8') # decode 解码
    print(s2)
    utf-8 bytes  ---> gbk bytes
    s1 = b"alex"
    print(s1.capitalize())          
    python3为什么存在bytes类型?(默写)
    文件的下载与传输都是str类型,str的编码方式是unicode,bytes的编码方式是utf-8,机器识别不了unicode,而bytes又是类似于str的类型,
    所以str先转化成bytes类型,在进行文件的传输与下载。



  • 相关阅读:
    oo第四次作业总结
    oo第三次博客总结
    oo第二次博客总结
    oo第一次博客总结
    leetcode155-最小栈
    leetcode141-环形链表
    leetcode278-第一个错误的版本
    leetcode118-杨辉三角
    LeetCode21-合并两个有序列表
    LeetCode27-移除元素
  • 原文地址:https://www.cnblogs.com/ls13691357174/p/9095863.html
Copyright © 2020-2023  润新知