python编程:(四)字符串介绍及操作

admin 2021年03月23日 668次浏览

1、字符串(str)

1.1、定义

字符串由一系列字符组成的不可变序列容器,存储的是字符的编码值

1.2、编码

  • 字节(byte):计算机最小存储单位,一个字节等于8 位(bit)
  • 字符:单个的数字,文字与符号
  • 字符集(码表):存储字符与二进制序列的对应关系
  • 编码:将字符转换为对应的二进制序列的过程
  • 解码:将二进制序列转换为对应的字符的过程
  • 编码方式:
    • ASCII编码:包含英文、数字等字符,每个字符1个字节
    • GBK编码:兼容ASCII编码,包含21003个中文;英文1个字节,汉字2个字节
    • Unicode字符集:国际统一编码,旧字符集每个字符2字节,新字符集4字节
    • UTF-8编码:Unicode的存储与传输方式,英文1字节,中文3字节

1.3、相关函数

  • ord(字符串):返回该字符串的Unicode码

  • chr(整数):返回该整数对应的字符串

  • 示例

    ord('a') # 97
    chr(99) # c
    

1.4、字符串特殊操作

  • 单引和双引号的区别

    • 单引号内的双引号不算结束符

    • 双引号内的单引号不算结束符

    • 示例

      print("这是'双引号' 套的 '单引号' ")
      print('这是 "单引号" 套的 "双引号" ')
      
      # 输出结果
      这是'双引号' 套的 '单引号' 
      这是 "单引号" 套的 "双引号"
      
  • 三引号作用

    • 换行会自动转换为换行符\n

    • 三引号内可以包含单引号和双引号

    • 作为文档字符串

    • 示例

      """
          单双引号输出结果:
              这是'双引号' 套的 '单引号'
              这是 "单引号" 套的 "双引号"
      """
      
  • 转义字符

    • 改变字符的原始含义
      \’ \” \””” \n \ \t \0 空字符

    • 原始字符串:取消转义
      r"字符串"

      a = "C:\newfile\test.py"
      # 输出结果
      	C:
      	ewfile	est.py
      
      b = r"C:\newfile\test.py"
      # 输出结果
      C:\newfile\test.py
      
  • 字符串格式化

    • 定义
      生成一定格式的字符串
    • 语法
      字符串%(变量)
    • 示例
      "我的名字是%s,年龄是%d" % (name, age)
    • 类型码
      %s:字符串
      %d:整数
      %.nf:浮点数(n为精度)

2、通用操作

该操作适用于:字符串、列表、元组等

2.1、数学运算符

  • +:用于拼接两个容器

  • +=:用原容器与右侧容器拼接,并重新绑定变量

  • *:重复生成容器元素

  • *=:用原容器生成重复元素, 并重新绑定变量

  • < <= > >= == !=:依次比较两个容器中元素,一但不同则返回比较结果

    str_1 = 'a b c '
    str_2 = 'A B C '
    
    a = str_1 + str_2 # 'a b c A B C '
    str_1 += str_2 # 'a b c A B C '
    b = str_1 * 2 # 'a b c a b c '
    str_2 *= 2 # 'A B C A B C '
    

2.2、成员运算符

  • 语法
    数据 in 序列
    数据 not in 序列

  • 作用
    如果在指定的序列中找到值,返回bool类型

  • 示例

    str_01 = 'abcdefg'
    str_02 = 'b'
    
    str_02 in str_01 # True
    str_02 not in str_01 # False
    

2.3、索引(index)

  • 作用
    定位容器中的单个元素

  • 语法
    容器[整数]

  • 说明

    • 正向索引从0开始,第二个索引为1,最后一个为len(字符串)-1
    • 反向索引从-1开始,-1代表最后一个,-2代表倒数第二个,以此类推,第一个是-len(字符串)
  • 示例

    str_01 = 'abcdefg'
    
    str_01[0] # a
    str_01[-1] # g
    str_01[-len(str_01)] # a
    str_01[len(str_01) - 1] # g
    

2.4、切片(slice)

  • 作用
    从容器中取出相应的元素重新组成一个容器。

  • 语法
    容器[(开始索引):(结束索引)(:(步长))]

  • 说明

    • 小括号()括起的部分代表可省略
    • 结束索引不包含该位置元素
    • 步长是切片每次获取完当前元素后移动的偏移量
    • 不指定开始位置,默认从第一个元素开始;不指定结束位置,默认到最后一个元素
  • 示例

    message = '这是一个测试字符串'
    
    # 取第3 - 第6个元素
    print(message[2:6]) # 一个测试
    
    # 取第3 - 第6个元素,隔1个取1个
    print(message[2:6:2]) # 一测
    
    # 从开头,取到第6个元素
    print(message[:6]) # 这是一个测试
    
    # 从第二个元素,取到最后一个元素
    print(message[2:]) # 一个测试字符串
    
    # 正向获取全部元素
    print(message[:]) # 这是一个测试字符串
    
    # 反向获取所有数据
    print(message[::-1]) # 串符字试测个一是这
    
    # 如果索引的结束值超出索引的最大值时,默认取到最后一个元素
    print(message[1:100]) # 是一个测试字符串
    

2.5、内建函数

  • len(x) 返回序列的长度
  • max(x) 返回序列的最大值元素
  • min(x) 返回序列的最小值元素
  • sum(x) 返回序列中所有元素的和(元素必须是数值类型)