7 字符串

yiyijojo / 2023-09-04 / 原文

  • 1 驻留机制
  • 2 查询
    index():查找子串substr第一次出现的位置,如果查找的子串不存在时,则抛出ValueError
    rindex():查找子串substr最后一次出现的位置,如果查找的子串不存在时,则抛出ValueError
    find():查找子串substr第一次出现的位置,如果查找的子串不存在时,则返回-1
    rfind():查找子串substr最后一次出现的位置,如果查找的子串不存在时,则返回-1
  • 3 大小写装换
    upper(): 把字符串中所有字符都转成大写字母
    lower(): 把字符串中所有字符都转成小写字母
    swapcase(): 把字符串中所有大写字母转成小写字母,把所有小写字母都转成大写字母
    capitalize(): 把第一个字符转换为大写,把其余字符转换为小写
    title(): 把每个单词的第一个字符转换为大写,把每个单词的剩余字符转换为小写
  • 4 内容对齐
    center(): 居中对齐,第1个参数指定宽度,第2个参数指定填充符,第2个参数是可选的,默认是空格,如果设置宽度小于实际宽度则则返回原字符串
    s.center(20, '*')
    ljust(): 左对齐,第1个参数指定宽度,第2个参数指定填充符,第2个参数是可选的,默认是空格如果设置宽度小于实际宽度则则返回原字符串
    rjust():右对齐,第1个参数指定宽度,第2个参数指定填充符,第2个参数是可选的,默认是空格如果设置宽度小于实际宽度则则返回原字符串
    zfill():右对齐,左边用0填充,该方法只接收一个参数,用于指定字符串的宽度,如果指定的宽度小于等于字符串的长度,返回字符串本身
  • 5 劈分
    split(): 从字符串的左边开始劈分,默认的劈分字符是空格字符串,返回的值都是一个列表以
    通过参数sep指定劈分字符串是的劈分符 s1.split(sep='|')
    通过参数maxsplit指定劈分字符串时的最大劈分次数,在经过最大次劈分之后,剩余的子串会单独做为一部分
    rsplit(): 从字符串的右边开始劈分,默认的劈分字符是空格字符串,返回的值都是一个列表
  • 6 判断
    isidentifier(): 判断指定的宗符串是不是合法的标识符
    isspace(): 判断指定的字符串是否全部由空白字符组成(回车、换行,水平制表符)
    isalpha(): 判断指定的字符串是否全部由字母组成
    isdecimal(): 判断指定字符串是否全部由十进制的数字组成
    isnumeric(): 判断指定的宁符串是否全部由数字组成
    isalnum(): 判断指定字符串是否全部由字母和数宇组成
  • 7 替换于合并
    replace(): 第1个参数指定被替换的子串,第2个参数指定替换子串的字符串,该方法返回替换后得到的字符串,替换前的字符串不发生变化,调用
    该方法时可以通过第3个参数指定最大替换次数
    s.replace('Phython', 'Java', 2)
    join(): 将列表或元组中的字符串合并成一个字符串
    lst1= ['Hello', 'World', '!'] print('|'.join(lst1)) print(''.join(lst1))
  • 8 切片
  • 9 格式化
    %占位符 %s:字符串, %i/%d:整数;%f:浮点数
    { }占位符
    f-string
    print('我的名字叫:%s,今年%d岁了' % (name, age))
    print('我的名字叫:{0},今年{1}岁了'.format(name, age))
    print(f'我的名字叫{name},今年{age}岁')
    print('%10d' % 99) #输出宽度10
    print('%f' % 3.1415926) #浮点输出
    print('%.3f' % 3.1415926) #输出三位小数
    print('%10.3f' % 3.1415926) #输出宽度10三位小数
    print('{0:.3}'.format(3.1415926)) #输出三位数
    print('{0:.3}'.format(3.1415926)) #输出三位小数
    print('{0:10.3f}'.format(3.1415926)) #输出宽度为10三位小数
  • 10 编码、解码
    编码:字符串转换为二进制数
    print(s.encode(encoding='GBK')) #一个中文占两个字符
    print(s.encode(encoding='UTF-8')) #一个中文占三个字符
    解码:将bytes类型数据转换成字符串
    byte=s.encode(encoding='GBK')
    print(byte.decode(encoding='GBK'))