• python3 字符串方法


    1.capitalize() 将字符串的第一个字符改为大写

    1 >>> s='i love cnblog'
    2 >>> s.capitalize()
    3 'I love cnblog'

    2.casefold() 将字符串所有字符改为小写

    1 >>> (s.capitalize()).casefold()
    2 'i love cnblog'

    3.center(width) 将字符串居中,并用空格将字符串填充至width长度,空格均匀分布在两侧,当width<len(s)时没有效果

    1 >>> s.center(20)
    2 '   i love cnblog    '

    4.count(sub[,start[,end]]) 返回sub在字符串里出现的次数,start,end为可选参数,决定范围

    1 >>> s.count('0',5,13)
    2 0
    3 >>> s.count('o',5,13)
    4 1
    5 >>> s.count('o',0,13)
    6 2

    5.encode(encoding='utf-8',errors='strict') 以encoding指定的编码格式对字符串进行编码

    1 >>> s.encode(encoding='utf-8',errors='strict')
    2 b'i love cnblog'
    1 >>> s.encode()
    2 b'i love cnblog'

    6.endswith(sub[,start[,end]]) 检查字符串是否以sub结尾,是返回True,否返回False,start,end为可选参数,决定范围

    1 >>> s.endswith('!',0,13)
    2 False
    3 >>> s.endswith('g')
    4 True

    7.expandtabs([tabsize=8]) 把字符串的tab字符( )转化为空格,如不指定tabsize,默认为8个空格

    1 >>> s.expandtabs()
    2 'i love cnblog'
    3 >>> s='	 i love cnblog	'
    4 >>> s.expandtabs()
    5 '         i love cnblog  '

    这里第一个 转化为8个空格,第二个tab是在后面加了3个空格,与'cnblog'相加共8个字符,并不是直接加8个空格

    8.find(sub[,start[,end]]) 检测sub是否在字符串中,如果在则返回index,否则返回-1,start,end为可选参数,决定范围

    1 >>> s='i love cnblog'
    2 >>> s.find('o')
    3 3
    4 >>> s.find('o',3,13)
    5 3
    6 >>> s.find('o',4,13)
    7 11
    8 >>> s.find('g',0,13)
    9 12

    这里返回的是sub的index,同时start,end都是包含的。

     9.index(sub[,start[,end]]) 类似find(),不同在于如果sub不在字符串中,返回的不是-1而是异常

    1 >>> s='i love cnblog'
    2 >>> s.index('o')
    3 3
    4 >>> s.index('h')
    5 Traceback (most recent call last):
    6   File "<pyshell#2>", line 1, in <module>
    7     s.index('h')
    8 ValueError: substring not found

    10.isalnum() 如果字符串至少有一个字符,并且所有字符都是字母或数字则返回True,否则False

     1 >>> s='i love cnblog'#有空格
     2 >>> s.isalnum()
     3 False
     4 >>> s='ilovecnblog'
     5 >>> s.isalnum()
     6 True
     7 >>> s='11ii'
     8 >>> s.isalnum()
     9 True

    11.isalpha() 如果字符串至少有一个字符,并且所有字符都是字母则返回True,否则False

    1 >>> s='ilovecnblog'
    2 >>> s.isalpha()
    3 True

    12.isdigit() 如果字符串只包含数字则返回True,否则返回False

    1 >>> s='1234'
    2 >>> s.isdigit()
    3 True

    13.isdecimal() 如果字符串只包含十进制数字则返回True,否则返回False

    >>> s='1234'
    >>> s.isdecimal()
    True
    >>> s='ox12'#十六进制
    >>> s.isdecimal()
    False
    >>> s='o123'#八进制
    >>> s.isdigit()
    False

    14.islower() 如果字符中至少包含一个能区分大小写的字符,并且这些字符都是小写则返回True,否则返回Flase

     isupper()如果字符中至少包含一个能区分大小写的字符,并且这些字符都是大写则返回True,否则返回Flase

    1 >>> s='ilovecnblog'
    2 >>> s.islower()
    3 True
    4 >>> s='ILOVE'
    5 >>> s.isupper()
    6 True

    15.isnumeric() 如果字符串只包含数字字符,则返回True,否则返回False

    初一看感觉和isdigit()是一样的,但是:

     1 >>> num='1'
     2 >>> num.isdigit()
     3 True
     4 >>> num.isnumeric()
     5 True
     6 >>> num=b'1'
     7 >>> num.isdigit()
     8 True
     9 >>> num.isnumeric()
    10 Traceback (most recent call last):
    11   File "<pyshell#31>", line 1, in <module>
    12     num.isnumeric()
    13 AttributeError: 'bytes' object has no attribute 'isnumeric'
    14 >>> num=''#汉字的数字,同样的还有罗马数字等
    15 >>> num.isdigit()
    16 False
    17 >>> num.isnumeric()
    18 True

    17.isidentifier() 判断字符串是否包含该语言的保留字

    'def'.isidentifier()
    Out[3]: 
    True
    'eval'.isidentifier()
    Out[4]: 
    True
    

     18.isprintable() 判断字符串中所有的字符串都是可以通过repr表示成字符串,或者字符串是空的,都返回True,否则返回False

    chr(1000000).isprintable()
    Out[13]: 
    False
    

     这里使用一个超出字符编码范围的数字去转化成字符,测试其是否可以打印,显然,答案是不行。

    19.isspace() 判断字符串,至少有一个字符的字符串中所有字符是否都是空格,不是则返回False

    ''.isspace()
    Out[14]: 
    False
    ' '.isspace()
    Out[15]: 
    True
    ' a'.isspace()
    Out[16]: 
    False
    

     20.istitle() 判断是否是标题格式,这里理解为首字母大写。

    'Author'.istitle()
    Out[17]: 
    True
    'aA'.istitle()
    Out[18]: 
    False
    'Aa'.istitle()
    Out[19]: 
    True
    'AAAa'.istitle()
    Out[20]: 
    False
    

     21.isupper() 判断字符串是否全部是大写

    'AAAa'.isupper()
    Out[21]: 
    False
    

     22.join() 返回一个用指定字符串分隔的字,或者是将指定字符加入到另一个字符中。

    a = '12345'
    ','.join(a)
    Out[23]: 
    '1,2,3,4,5'
    

     23.lower() 返回的是指定字符串的拷贝,并转化成小写

    'AAA'.lower()
    Out[24]: 
    'aaa'
    

     24.ljust() 可以指定宽度,以及填充字符串,返回的是按宽度,填充字符串格式化后的左对齐的字符串。

    b = 'a'.ljust(10)
    len(b)
    Out[28]: 
    10
    'a'.ljust(10, 'A') # 指定以A填充
    Out[30]: 
    'aAAAAAAAAA'
    

     25.partition:在指定字符串中查找sep,如果找到了返回该字符前面的部分,sep,及后面的部分,

    如果没找到则返回sep及两个空字符中,类似于split,但又有不同

    'ssaafdaf'.partition('f')
    Out[3]: 
    ('ssaa', 'f', 'daf')
    

     26.replace ,用指定字符串替换指定字符串,如果不指定替换次数,仅替换第一个。

    'this is  a test'.replace('a', 'A')
    Out[4]: 
    'this is  A test'
    

     27.rfind(): 返回指定子串的最高索引,如果没找到则返回-1,可以指定要开始替换的起始,结束位置。

    'this is a test'.rfind('i')
    Out[5]: 
    5
    

     28.rindex(),与上面的rfind一样,只是如果没找到不是返回-1,而是触发错误

    'this is a test'.rindex('g')
    Traceback (most recent call last):
      File "C:Program FilesPython35libsite-packagesIPythoncoreinteractiveshell.py", line 2869, in run_code
        exec(code_obj, self.user_global_ns, self.user_ns)
      File "<ipython-input-6-f8a393e6a7d2>", line 1, in <module>
        'this is a test'.rindex('g')
    ValueError: substring not found
    

     29.rjust();与ljust()相对应

    'aa'.ljust(10)
    Out[25]: 
    'aa        '
    'aa'.rjust(10)
    Out[26]: 
    '        aa'
    

     30.rpartition()与partition一样,但是是从右边开始

    'this is a test'.rpartition('a')
    Out[7]: 
    ('this is ', 'a', ' test')
    

     31.rsplit(),与split作用相同,但是从右侧开始

    this is a test'.rsplit(' ')
    Out[8]: 
    ['this', 'is', 'a', 'test']
    

     但是讲真,如果不仔细考虑你是不会发现它与split有什么不同的,只有当你指定了最大切割次数时才会有效果。

    'this is a test'.split(' ', 1)
    Out[10]: 
    ['this', 'is a test']
    'this is a test'.rsplit(' ', 1)
    Out[11]:
    ['this is a', 'test']

     32.rstrip(), 从右侧移除指定字符

    'this is a test'.rstrip('t')
    Out[12]: 
    'this is a tes'
    

     33.split(), 按指定字符串对目标字符串进行切割,可以指定切割次数

    'this is a test'.split('i', 1)
    Out[13]: 
    ['th', 's is a test']
    

     感觉它与partition的不同在于它返回的结果中移除了指定的字符串

    34.splitlines(),返回字符串的行,按换行符切割,如果没指定keepends=True,则会将其从结果中移除

    'this is a string
     this is a test'.splitlines()
    Out[14]: 
    ['this is a string', ' this is a test']
    
    'this is a string
     this is a test'.splitlines(keepends=True)
    Out[16]: 
    ['this is a string
    ', ' this is a test']
    

     35.startswith(),判断字符串是否以某个字符开头

    'this is a test'.startswith('t')
    Out[18]: 
    True
    # 不一定非得一单个字符
    'this is a test'.startswith('this')
    Out[19]: 
    True
    

     36.strip() 移除字符串两侧的指定字符串,默认移除空格,需要注意的是可以指定多个字符

    'this is a test'.strip('ts')
    Out[20]: 
    'his is a te'
    

     37.swapcase() 转换大小写

    'this is A test'.swapcase()
    Out[21]: 
    'THIS IS a TEST'
    

     38.title(), 标题格式,就是首字母大写,其它字符小写

    'this is a test'.title()
    Out[22]: 
    'This Is A Test'
    

     39.upper(),将字符全部转成大写

    'this is a test'.upper()
    Out[24]: 
    'THIS IS A TEST'
    

     40.zfill(),这里的z指zero,用0将字符填充到指定长度

    'aa'.zfill(10)
    Out[25]: 
    '00000000aa'
    

     41.maketrans(),translate,因为内容比较多,见我另一博客

    http://www.cnblogs.com/Andy963/p/7060292.html

  • 相关阅读:
    M3U8文件
    线程间的通信方式以及线程与进程的区别
    string类的实现
    进程间的通信方式
    GDB调试多线程
    面向对象与面向过程的优缺点
    同步与异步,阻塞与非阻塞的区别
    计算机cpu、寄存器、内存区别
    Linux下Makefile中动态链接库和静态链接库的生成与调用
    使用session来存储用户的登录信息
  • 原文地址:https://www.cnblogs.com/Andy963/p/5073128.html
Copyright © 2020-2023  润新知