python 字符串(str)方法

                                         强大自己是唯一获得幸福的途径,这是长远的,而非当下的玩乐!


以下会列出python3.6所有方法

str.capitalize()     -- >  首字母大写,并且后面全小写

>>> name = "zwdsaAAAz"
>>> print(name.capitalize())
Zwdsaaaaz
>>>

str.casefold()    -- > 转换字符串中所有大写字符为小写。 

>>> name = "ZwdsaADDAAz"
>>> print(name.casefold())
zwdsaaddaaz

注:lower() 方法只对ASCII编码,也就是‘A-Z’有效,对于其他语言(非汉语或英文)中把大写转换为小写的情况只能用 casefold() 方法。 

str.center(width, fillchar=None)  -- > 自定义宽度并使字符串居中,空白可自定义填充

>>> name = "zwzlp"
>>> print(name.center(20,'#'))
#######zwzlp########
>>>

str.count(sub, start=None, end=None)   -- >   统计自定义start起始位置到end位置出现的sub次数

>>> name = "zwzlp"
>>> print(name.count('z',0,3))
2
>>>

 

str.encode(encoding='utf-8', errors='strict')   -- > 

encoding -- 要使用的编码,如"UTF-8"。

errors -- 设置不同错误的处理方案。默认为 'strict',意为编码错误引起一个UnicodeError。 其他可能得值有 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及通过 codecs.register_error() 注册的任何值。

 

>>> str = "这是一个例子"
>>> print(str.encode('ASCII','strict'))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128)
>>> print(str.encode('GBK','strict'))
b'\xd5\xe2\xca\xc7\xd2\xbb\xb8\xf6\xc0\xfd\xd7\xd3'
>>> print(str.encode('UTF-8','strict'))
b'\xe8\xbf\x99\xe6\x98\xaf\xe4\xb8\x80\xe4\xb8\xaa\xe4\xbe\x8b\xe5\xad\x90'

 注:报错是因为ascii无法对照中文。

str.endswith(suffix, start=None, end=None)   -- > 判断字符串是否以指定后缀结尾,是返回True,否则返回False

>>> name = "zwzlp"
>>> print(name.endswith("lp"))
True
>>> print(name.endswith("wzlp"))
True
>>> print(name.endswith("wz"))
False
>>> print(name.endswith("wz",0,3))
True
>>>

str.expandtabs(self, tabsize=8)    -- > 把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8

name = "z   w   z   l   p"
print(name.expandtabs())

str.find(sub, start=None, end=None)  -- > 检测字符串中是否包含子字符串 str,存在就返回索引,不存在返回-1

>>> name = "zwzlp"
>>> print(name.find("w"))
1
>>> print(name.find("w",2,4))
-1
>>>

str.format(self, *args, **kwargs)    -- >  

格式化字符串,增强了字符串格式化的功能。

基本语法是通过 {} 和 : 来代替以前的 % 。

format 函数可以接受不限个参数,位置可以不按顺序。

直接传值

>>> "{} {}".format("hello", "world")
'hello world'
>>> "{1} {1}".format("hello", "world")
'world world'
>>> "{1} {1} {0} ,{1}.".format("hello", "world")
'world world hello ,world.'
>>>

其他传值方法

>>> print("名字: {name},地址: {url}".format(name="zw",url="zwzlp.com"))
名字: zw,地址: zwzlp.com
>>>
>>> dic1 = {"name": "lp", "url": "lp.com"}
>>> print("名字: {name},地址: {url}".format(**dic1))
名字: lp,地址: lp.com
>>>
>>> l1 = ["zwzlp","zwzlp.com"]
>>> print("名字: {0[0]},地址: {0[1]}".format(l1))
名字: zwzlp,地址: zwzlp.com
>>>

str.format_map(mapping)     -- > 用法类似于format(),这个溜了溜了。

str.index(sub, start=None, end=None)   -- >  等同于find,但是index找不到会报错,用find

str.isalnum()                    -- >     符串是否由字母和数字组成

>>> name = "zwzlp1314"
>>> print(name.isalnum())
True
>>>

str.isalpha()                    -- >  检测字符串是否只由字母组成

>>> name = "zwzlp1314"
>>> print(name.isalpha())
False
>>>

str.isdecimal()              -- >  检查字符串是否只包含十进制字符。这种方法只存在于unicode对象

>>> num = "zwzlp1314"
>>> print(num.isdecimal())
False
>>> num = "1314"
>>> print(num.isdecimal())
True
>>>

str.isdigit()              -- >   检测字符串是否只由数字组成

>>> num = "zwzlp1314"
>>> print(num.isdigit())
False
>>> num = "1314"
>>> print(num.isdigit())
True
>>>

str.isidentifier()    -- > 

str.islower()       -- >   检测字符串是否由小写字母组成

>>> name = "zwzlp"
>>> print(name.islower())
True
>>> name = "Zwzlp"
>>> print(name.islower())
False
>>>

str.isnumeric()     -- >  检测字符串是否只由数字组成。这种方法是只针对unicode对象。

>>> num = "zwzlp1314"
>>> print(num.isnumeric())
False
>>> num = "1314"
>>> print(num.isnumeric())
True
>>>

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

>>> name.isprintable()
True
>>> name = ""
>>> name.isprintable()
True
>>> chr(1000000).isprintable()
False
>>>

str.isspace()    -- > 检测字符串是否只由空白字符组成。

>>> str = "       "
>>> print (str.isspace())
True
>>>
>>> str = "zwz lp le"
>>> print (str.isspace())
False
>>>

str.istitle()      -- >  检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。

>>> str = "This Is String Example...Wow!!!"
>>> print (str.istitle())
True
>>> str = "This is string example....wow!!!"
>>> print (str.istitle())
False
>>>

str.isupper()      -- >  检测字符串中所有的字母是否都为大写

>>> str = "THIS IS STRING EXAMPLE"
>>> print (str.isupper())
True
>>> str = "THIS is string example"
>>> print (str.isupper())
False
>>>

str.join(iterable)     -- >  将序列中的元素以指定的字符连接生成一个新的字符串。

>>> s1 = "-"
>>> s2 = ""
>>> s = ("z", "w", "z", "l", "p")
>>> print(s1.join(s))
z-w-z-l-p
>>> print(s2.join(s))
zwzlp
>>>

str.ljust(width, fillchar=None)     -- >  返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。 

>>> name = "zwzlp"
>>> print(name.ljust(20,'-'))
zwzlp---------------
>>>

str.lower()         -- >  转换字符串中所有大写字符为小写

>>> name = "ZwZLp"
>>> print(name.lower())
zwzlp
>>>

str.lstrip(chars=None)        -- > 截掉字符串左边的空格或指定字符。

>>> name = "            zwzlp"
>>> print(name.lstrip())
zwzlp
>>> name = "11111111111zwzlp  "
>>> print(name.lstrip('1'))
zwzlp
>>>

str.maketrans(*args, **kwargs)    -- >     用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。

两个字符串的长度必须相同,为一一对应的关系。

>>> intab = 'zl'
>>> outtab = '26'
>>> name = 'zwzlp'
>>> print(name.maketrans(intab,outtab))
{122: 50, 108: 54}
>>> trtab = name.maketrans(intab,outtab)
>>> print(name.translate(trtab))
2w26p
>>>

 str.partition(sep)      -- >  用来根据指定的分隔符将字符串进行分割。

如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。

>>> name = "z.w.z.lp"
>>> print(name.partition('.'))
('z', '.', 'w.z.lp')
>>>

str.replace(old, new, count=None)    -- >  把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

>>> name = "zwz  lp   zwzlp.com"
>>> print(name.replace("zwz", "zw"))
zw  lp   zwlp.com
>>> print(name.replace("zwz", "zw", 1))
zw  lp   zwzlp.com
>>>

str.rfind(sub, start=None, end=None)   -- > 字符串最后一次出现的位置,如果没有匹配项则返回-1

>>> name = "zwzlp"
>>> print(name.rfind("z"))
2
>>> print(name.rfind("z",0,1))
0
>>> print(name.rfind("l",0,1))
-1
>>>

str.rindex(sub, start=None, end=None)    -- >  等同于rfind,但是找不到会报错,用rfind

str.rjust(width, fillchar=None)      -- >    返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。

>>> name = "zwzlp"
>>> print(name.rjust(20,'-'))
---------------zwzlp
>>>

str.rpartition(sep)    -- >  类似于 partition() 方法,只是该方法是从目标字符串的末尾也就是右边开始搜索分割符。。

如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。 

>>> name = "z.w.z.lp"
>>> print(name.rpartition('.'))
('z.w.z', '.', 'lp')
>>>

str.rsplit(sep=None, maxsplit=-1)   -- >  通过指定分隔符对字符串进行分割并返回一个列表,默认分隔符为所有空字符,包括空格、换行(\n)、制表符(\t)等。类似于 split() 方法,只不过是从字符串最后面开始分割。

>>> name = "zwz lp love"
>>> print(name.rsplit())
['zwz', 'lp', 'love']
>>> print(name.rsplit('l',1))   
['zwz lp ', 'ove']           ## 由于rsplit是从右边开始,所以右边的l没了
>>>

str.rstrip(chars=None)      -- >  删除 string 字符串末尾的指定字符(默认为空格).

>>> name = "   zwz  lp   "
>>> print(name.rstrip())
   zwz  lp                     #末尾没空格了
>>>
>>> name = "   zwz lp -----"
>>> print(name.rstrip('-'))
   zwz lp                      #除了lp后面的一个空格,-都没了
>>>

str.split(sep=None, maxsplit=-1)    -- >   指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串

>>> name = "zwz lp love"
>>> print(name.split())
['zwz', 'lp', 'love']
>>> print(name.split('l',1))
['zwz ', 'p love']
>>> print(name.split('z'))
['', 'w', ' lp love']
>>>

str.splitlines(keepends=None)    -- > 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

>>> name = "z\rwz\nlp\n"
>>> print(name.splitlines())
['z', 'wz', 'lp']                  ## 默认为False
>>> print(name.splitlines(True))
['z\r', 'wz\n', 'lp\n']
>>>

str.startswith(prefix, start=None, end=None)    -- > 用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查。

>>> name = "zwzlp"
>>> print(name.startswith('z'))
True
>>> print(name.startswith('Z'))          #区分大小写
False
>>> print(name.startswith('Z', 1, 5))    #指定范围
False
>>>

str.strip(chars=None)      -- >     用于移除字符串头尾指定的字符(默认为空格)或字符序列。

注:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。

>>> name = "    zw  zl p  "
>>> print(name.strip())                #默认删除空格
zw  zl p
>>> name = " --- z w - zlp---"         
>>> print(name.strip('-'))             #由于开头多了一个空格,没有删除
 --- z w - zlp
>>> name = "--- z w - zlp---"          #顶格写则删除
>>> print(name.strip('-'))
 z w - zlp
>>>

str.swapcase()            -- >  用于对字符串的大小写字母进行转换

>>> name = "ZwzLP"
>>> print(name.swapcase())
zWZlp
>>>

str.title()               -- >  返回"标题化"的字符串,就是说所有单词的首个字母转化为大写,其余字母均为小写。

>>> name = "zwzLP"
>>> print(name.title())
Zwzlp
>>>

str.translate(table)        -- >  根据参数table给出的表(包含 256 个字符)转换字符串的字符,要过滤掉的字符放到 deletechars 参数中。

>>> bytes_tabtrans = bytes.maketrans(b'abcdefghijklmnopqrstuvwxyz', b'ABCDEFGHIJKLMNOPQRSTUVWXYZ')
>>> print(b'zwzlp'.translate(bytes_tabtrans, b'o'))
b'ZWZLP'
>>>
>>> intab = 'zl'
>>> outtab = '26'
>>> name = 'zwzlp'
>>> print(name.maketrans(intab,outtab))
{122: 50, 108: 54}
>>> trtab = name.maketrans(intab,outtab)
>>> print(name.translate(trtab))
2w26p
>>>

str.upper()        -- > 将字符串中的小写字母转为大写字母。

>>> name = "zwZlp"
>>> print(name.upper())
ZWZLP
>>>

 str.zfill(width)     -- >   返回指定长度的字符串,原字符串右对齐,前面填充0。

>>> name = "zwzlp"
>>> print(name.zfill(20))
000000000000000zwzlp
>>> 

 

猜你喜欢

转载自blog.csdn.net/z_bright/article/details/83279733