• python——字符串内置函数


    当字符串本身就含有 之类的,可以用转义符、行显示(在字符串引号前面加r)、repr(str)三种方法。

    字符串内置方法

    字符串内置方法:

    1. capitalize(...)

    S.capitalize() -> str
    字符串的首字母大写
    

    2. casefold(...)

    S.casefold() -> str
    
    Return a version of S suitable for caseless comparisons.
    再补充;
    

    3. center(...)

    S.center(width[, fillchar]) -> str
    指定字符个数,使字符串居中,不足该个数的用指定的字符补充。默认用空格补充。
    例如:
         a='Wjz wjk wz zs'
         print(a.center(50,'*'))
    

    4. count(...)

    S.count(sub[, start[, end]]) -> int
    统计指定字符在字符串中的个数;可以指定始末位置;
    例如:
        a='Wjz wjk wz zs'
        print(a.count('w',4,5))
    

    5. encode(...)

    S.encode(encoding='utf-8', errors='strict') -> bytes
    将字符串转码为二进制模式;decode是解码为unicode;
    

    6. endswith(...)

    S.endswith(suffix[, start[, end]]) -> bool
    判断字符串是否是以指定的字符结尾,返回True或者False;也可以指定始末位置;位置参数同样是顾首不顾尾;
    例如:
        a='Wjz wjk wz zs'
        print(a.endswith('w',3,5))
    

    7. expandtabs(...)

    S.expandtabs(tabsize=8) -> str
    将制表符tab换成空格,默认是一个制表符8个空格;
    

    8. find(...)

    S.find(sub[, start[, end]]) -> int
    查找指定字符在字符串中的位置;从左边开始找,返回第一个指定字符的位置;如果没有找到,则返回负一
    

    9. format(...)

    S.format(*args, **kwargs) -> str
    
    • 字符串格式化,用{}代替.

      例如:

      info = 'my name is {},age {}'.format('wz',27)
      print(info)             # 打印 my name is wz,age 27
      
      info = 'my name is {1} ,age {0} {1}'.format(27,'wz')
      print(info)             # 打印 my name is wz,age 27 wz
      
      wz = ['wz',27]
      info = 'my name is {},age {}'.format(*wz)
      print(info)             # 打印 my name is wz,age 27
      
      dict = {'name':'wz','age':27}
      info = 'my name is {name},age {age}'.format(**dict)
      print(info)             # 打印 my name is wz,age 27
      
      info = 'my name is {name},age {age}'.format(name='wz',age=27)
      print(info)             # 打印 my name is wz,age 27
      
      wzinfo = ['wz',27]
      info = 'my name is {0[0]},age {0[1]}'.format(wzinfo)
      print(info)             # 打印 my name is wz,age 27
      
    • 填充

      格式:
          :[填充字符][对齐方式 <^>][宽度]          
      冒号前面为0,可以省略;<为左对齐;^为居中;>为右对齐;
      例如:
          :#>20  表示  宽度是20,右对齐,以#补充空格;   
      

      例如:

      s = 'wjz'
      print('{:*>10}'.format(s))     # :前面的0可以省略;输出 *******wjz
      
      s = 'wjz'
      print('{:*^10}'.format(s))     # :前面的0可以省略;输出 ***wjz****
      
    • 精度与进制转换

      同样冒号前的0可省略;

      n = 1/3
      print('{0:.2f}'.format(n))    # 按指定精度取浮点型值; 打印 0.33
      
      n = 10
      print('{0:b}'.format(n))      # 将10转换为二进制;打印 1010
      
      n = 10
      print('{0:o}'.format(n))      # 将10转换为八进制;打印 12  
      
      n = 10
      print('{0:x}'.format(n))      # 将10转换为16进制;打印 a
      
      n = 10454536484
      print('{:,}'.format(n))       # 千分位格式化;一般金额使用;打印 10,454,536,484
      

    10. format_map(...)

    S.format_map(mapping) -> str
    
    Return a formatted version of S, using substitutions from mapping.
    The substitutions are identified by braces ('{' and '}').
    再补充吧;
    

    11. index(...)

    S.index(sub[, start[, end]]) -> int
    查找指定字符在字符串中的位置;从左边开始找,返回第一个指定字符的位置;如果没有找到,则报错异常;和find方法差不多。rindex为从右边开始查找第一个,返回位置码;
    

    12. isalnum(...)

    S.isalnum() -> bool
    如果字符串中都是字母和数字组成的,则返回True;否则返回False;
    

    13. isalpha(...)

    S.isalpha() -> bool
    判断字符串是否全部是字母;如果是,返回True;否则返回False;
    

    14. isdecimal(...)

    S.isdecimal() -> bool
    判断字符串是否全是整型数字组成,如果是返回True;否则返回False;一直没分清isdecimal和isdigit的区别;
    

    15. isdigit(...)

    S.isdigit() -> bool
    字符串不为空,且都为数字组成(支持二进制数字),则返回True;否则返回False;
    例如:
        a='123'
        print(a.isdigit())           True
    
        a=b'123'
        print(a.isdigit())           True
    

    16. isidentifier(...)

    S.isidentifier() -> bool
    如果字符串是一个合法的标识符,则返回True;否则返回False;合法的标识符是以字母或下划线开头的字符串;
    

    17. islower(...)

    S.islower() -> bool
    如果字符串中所有的字符都是小写,则返回True;否则返回False
    

    18. isnumeric(...)

    S.isnumeric() -> bool
    如果字符串中的字符都是数字,且不为空,则返回True;否则返回False
    

    19. isprintable(...)

    S.isprintable() -> bool
    如果字符串中的字符都为真,则返回True,否则返回False
    

    20. isspace(...)

    S.isspace() -> bool
    如果字符串中字符都是空格,且不为空,则返回True;否则返回False
    

    21. istitle(...)

    S.istitle() -> bool
    判断字符串是否是标题;字符串中每个单词的首字母为大写(大写字母前面可以有数字和空格),则返回True;否则返回False
    

    22. isupper(...)

    S.isupper() -> bool
    字符串中的所有字母都是大写,则返回True;否则返回False
    

    23. join(...) *重要

    S.join(iterable) -> str
    把指定的字符串隔开,间隔是字符串S;这里指定的间隔符可以是列表、元组。常用来进行字符串拼接;
    例如:
        a='###'
        print(a.join('wjz'))      # 输出  w###j###z
    
        a=''
        n1 = 'www'
        n2 = 'bashrunning'
        n3 = 'com'
        url = a.join([n1,'.',n2,'.',n3])
        print(url)              # 输出  www.bashrunning.com
    

    24. ljust(...)

    S.ljust(width[, fillchar]) -> str
    指定长度,字符串左对齐,不足长度用指定的字符填充;默认用空格补充
    例如:
        a='wjz'
        print(a.ljust(10,'*'))    # 输出  wjz*******
    

    25. lower(...)

    S.lower() -> str
    将字符串中的大写转换为小写;返回该字符串小写;
    例如:
        a='Wjz'
        print(a.lower())        # 返回    wjz
    

    26. lstrip(...)

    S.lstrip([chars]) -> str
    去除字符串左边的空格或制表符
    

    27. partition(...)

    S.partition(sep) -> (head, sep, tail)
    以指定的字符为分隔符,在字符串中从左开始搜索第一个匹配分隔符;返回分隔符前面和分隔符、后面三个部分;如果分隔符没有找到,则返回字符串本身和两个空字符串。返回结果是一个元组;
    例如:
        a='Wjz Wjk'
        print(a.partition('j'))          # 返回   ('W', 'j', 'z Wjk')
    
        a='Wjz Wjk'
        print(a.partition('t'))          # 返回   ('Wjz Wjk', '', '')
    

    28. replace(...)

    S.replace(old, new[, count]) -> str
    从左往右替换字符串中的字符;可以指定替换几个,默认替换所有匹配的;
    例如:
        a='Wjz Wjk wz'
        print(a.replace('z','l',1))     # 指定替换一个;返回  Wjl Wjk wz
    

    29. rfind(...)

    S.rfind(sub[, start[, end]]) -> int
    从右边开始查找指定的第一个字符;返回该字符的位置;如果没有找到,则返回负一;
    例如:
        a='Wjz Wjk wz'
        print(a.rfind('z'))      # 返回 9
    
        a='Wjz Wjk wz'
        print(a.rfind('z',2,5))      # 同时指定查找的范围;返回 2
    

    30. rindex(...)

    S.rindex(sub[, start[, end]]) -> int
    查找指定字符串的位置,从右边开始查找;如果没有找到,则返回异常
    

    31. rjust(...)

    S.rjust(width[, fillchar]) -> str
    指定长度,字符串右对齐,不足长度用指定的字符填充;默认用空格补充
    例如:
        a='wjz'
        print(a.rjust(10,'*'))    # 输出  *******wjz
    

    32. rpartition(...)

    S.rpartition(sep) -> (head, sep, tail)
    以指定的字符为分隔符,在字符串中从右开始搜索第一个匹配分隔符;返回分隔符前面和分隔符、后面三个部分;如果分隔符没有找到,则返回两个空字符串和字符串本身。返回结果是一个元组;
    例如:
        a='Wjz Wjk'
        print(a.rpartition('j'))          # 返回   ('Wjz W', 'j', 'k')
    
        a='Wjz Wjk'
        print(a.rpartition('t'))          # 返回   ('','','Wjz Wjk')
    

    33. rsplit(...)

    S.rsplit(sep=None, maxsplit=-1) -> list of strings
    指定分隔符,分隔字符串;返回一个列表;默认是以空格为分隔符;默认从右往左匹配所有分隔符;可以指定匹配几个;
    例如:
        a='Wjz wjk wz'
        print(a.rsplit('z',1))       # 返回  ['Wjz wjk w', '']
    

    34. rstrip(...)

    S.rstrip([chars]) -> str
    去除字符串右边的空格或制表符
    

    35. split(...)

    S.split(sep=None, maxsplit=-1) -> list of strings
    指定分隔符,分隔字符串;返回一个列表;默认是以空格为分隔符;默认从左往右匹配所有分隔符;可以指定匹配几个;
    例如:
        a='Wjz wjk wz'
        print(a.split('z',1))       # 返回  ['Wj',' wjk wz']
    

    36. splitlines(...)

    S.splitlines([keepends]) -> list of strings
    将字符串的每一行当做一个元素,返回一个列表;默认为False,不包含换行符;
    例如:
        a='''wjz
        wjk
        wz
        '''
        print(a.splitlines(True))  # 返回  ['wjz
    ', 'wjk
    ', 'wz
    ']
    

    37. startswith(...)

    S.startswith(prefix[, start[, end]]) -> bool
    判断字符串是否以指定的字符开始的。如果是,返回True;否则返回False;可以指定判断始末位置,默认从0位置开始;
    例如:
        a='''wjz wjk wz'''
        print(a.startswith('wjz'))   #  返回  True
    
        a='''wjz wjk wz'''
        print(a.startswith('wz'))   #  返回  False
    
        a='''wjz wjk wz'''
        print(a.startswith('wjk',4))   # 返回  True    这里只指定了开始位置,未指定结尾位置,默认是-1  ;            
    
    这里的prefix可以是元组;例如:
        a='''wjz wjk wz'''
        print(a.startswith(('wjz','wjk'),4))   # 返回 True     是元组中元素之一开头的,即为 True
    

    38. strip(...)

    S.strip([chars]) -> str
    默认去除字符串开头结尾的空格和制表符;可以指定要去除的字符;
    

    39. swapcase(...)

    S.swapcase() -> str
    反转字符串中字母的大小写;大写变成小写,小写变成大写;
    

    40. title(...)

    S.title() -> str
    将字符串变成标题;即将字符串中的每个单词的第一个字母大写;
    

    41. translate(...)

    S.translate(table) -> str
    
    根据一一映射关系(比如字典,把key替换为value)替换。字典中必须是ASCII码表示。
    

    例如:

    str = 'bashrunning.com'
    dic1 = {'a':1,'b':2,'c':3}              # 需要把key、value都转换为ASCII码表示,dic2就是dic1的ASCII表示形式
    dic2 = {ord('a'):ord('1'),ord('b'):ord('2'),ord('c'):ord('3')}      # dic = {97:49,98:50,99:51}
    print(str.translate(dic2))              # 打印 21shrunning.3om
    
    • 如果是bytes类型的字符串,还可以先删除,再按规则替换。

      bytes.translate(table[, delete])

    例如:

    # 若table参数为None,则只删除不映射  
    print(b'bashrunning.com'.translate(None, b'.com'))      # 打印 b'bashrunning'  
    
    # 若table参数不为NONE,则先删除再映射  
    bytes_tabtrans = bytes.maketrans(b'abc', b'123')   
    print(b'bashrunning.com'.translate(bytes_tabtrans, b'.com'))    #打印 b'21shrunning'
    

    注意,所有的都是bytes类型。

    42. maketrans(x, y=None, z=None, /)

    Return a translation table usable for str.translate().
    假如是x/y两个参数,且两个参数的长度一致,则生成一一映射关系;否则报异常。如果是只有x一个参数,则x必须是一个字典(ASCII表示的字典)。
    
        在python3中,maketrans为str的内置函数。在python2中,是一个函数
        intab = "aeiou"
        outtab = "12345"
        trantab = str.maketrans(intab,outtab)
        print(trantab)                  # 打印 {97: 49, 101: 50, 105: 51, 111: 52, 117: 53}
        str = "this is string example....wow!!!";
        print(str.translate(trantab))
    

    43. upper(...)

    S.upper() -> str
    将字符串中的小写字母变成大写
    

    44. zfill(...)

    S.zfill(width) -> str
    指定宽度,在字符串的左边用0填充;如果字符串长度大于等于指定的宽度,则返回字符串本身;
    例如:
        a='Wjz wjk'
        print(a.zfill(10))     #  输出   000Wjz wjk
    
        a='Wjz wjk'
        print(a.zfill(6))     #   输出    Wjz wjk
    

    附录:

    isdigit、isdecimal、isnumeric 三个方法区别

    这三个方法都是测试字符串是否都是数字组成。但是除了阿拉伯数字外,还有罗马数字、二进制数字等区别。 
    
    • 支持二进制数字的方法: isdigit
    • 支持罗马数字的方法: isdigit 、isnumeric
    • 支持汉字数字大写的方法: isnumeric
    如需转载,请注明出处,否则本人会追究法律责任!
  • 相关阅读:
    nopCommerce中缓存学习
    EF
    路由
    webapi的加密方式
    生成N位数字随机数
    C# DataTable 转 实体类
    WebBrowser 打印
    文件上传控件,格式统一
    sqlserver 表循环-游标、表变量、临时表
    VB 老旧版本维护系列---迷之集合- dataTable
  • 原文地址:https://www.cnblogs.com/hacker001/p/10081887.html
Copyright © 2020-2023  润新知