zoukankan      html  css  js  c++  java
  • python字符串与字节序列

    python字符串与字节

    python3中字节与字符串

    python3中只有一种数据类型可以保存文本信息,就是str(字符串),是不可变序列,保存的是unicode码位。在python3中,用bytes对象来处理字节字符串。
    bytes和可变的bytearray与str不同,只能用字节作为序列值,即0~256之间的整数表示。

     print(bytes([101,100,99]))
    b'edc'
    list(b'hello')
    [104, 101, 108, 108, 111]
    list(b'he llo')
    [104, 101, 32, 32, 32, 108, 108, 111]#空格的序列值是32

    从python3.0开始,所有没有前缀的字符串都是unicode。字节字符串要加前缀b
    unicode字符串是不可以用字节表示的文本,而将数据保存到文本或者通过网络发送必须是二进制数据,所以必须将字符串对象编码为字节序列
    字符串转字节序列:
    1. str.encode(encoding,errors)方法,encoding为编解码器,默认值为'utf-8'

    'hello'.encode()
     b'hello'
    
    1. bytes(source,encoding,errors)构造函数,创建一个新的字节序列,source为字符串,encoding为编解码器,必须指定encoding,没有默认值

      bytes('hello',encoding='utf-8')
      b'hello'
      bytes('hello','utf-8')
      b'hello'
      将bytes表示的二进制数据转成字符串

    2. bytes.decode(encoding,errors)方法,encoding必须与str.encode里的encoding相同

      b'hello'.decode()
      'hello'

    3. str(source,encoding,error)构造函数与bytes()构造函数相似,source是字节序列,必须指定str函数的参数encoding,它没有默认值

      str(b'hello','utf-8')
      'hello'
      python字符串是不可变的,bytes字节序列也是不可变的,有优点有缺点,优点是由于不变性,字符串可以做字典的键或set的元素,因为一旦初始化字符串的值就不会改变。缺点是当要修改字符串时,都需要创建一个全新的字符串实例。bytearray时bytes可变版本,字节数组可以通过append,pop,insert等方法添加修改删除字节序列

    处理字符串拼接

    1. 使用+=方法

      s="" for sub in subs: s+=sub

    2. 使用join方法

      s="".join(subs)
      字符串的格式化方法str.format或%

  • 相关阅读:
    浅谈SQLite——查询处理及优化
    .NET 并行(多核)编程系列之七 共享数据问题和解决概述
    sql 存储过程学习一
    SQL中获得EXEC后面的sql语句或者存储过程的返回值的方法 【收藏】
    script刷新页面,刷新代码
    C#编程中关于数据缓存的经验总结
    SQL存储过程的概念,优点及语法
    SQLite数据库安装、试用及编程测试手记
    c# sqlite 数据库加密
    进销存管理系统的设计与实现
  • 原文地址:https://www.cnblogs.com/dcotorbool/p/8117031.html
Copyright © 2011-2022 走看看