首页 >后端开发 >Python教程 >Python字符串

Python字符串

高洛峰
高洛峰原创
2016-10-29 11:18:151120浏览

如下学习python的字符串用法。

print(dir(str))

['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

如上是字符串的所有方法,一个一个看,共44个

 

1.返回第一个字母大写

   capitalize(...)

      capitalize() -> string

>>>a = 'hello world'
>>> b = a.capitalize()
>>> print (b)
Hello world

2.按指定长度填充特定字符

    center(...)

      S.center(width[, fillchar]) -> string

>>> a = 'linux'
>>> print a.center(7,'h')
hlinuxh
>>> print a.center(8,'h')
hlinuxhh
>>> print a.center(9,'h')
hhlinuxhh

3.查找某字符串出现的次数

    count(...)

      S.count(sub[, start[, end]]) -> int

>>> a = "this is my dog, i love this dog and it's a good dog!"
>>> print a.count('dog')
3
>>> print a.count('dog',15)
2
>>> print a.count('dog',15,30)
0
>>> print a.count('dog',15,32)
1

4.以指定的编码格式解码字符串。默认编码为字符串编码(适合python2中处理中文)

    decode(...)

      S.decode([encoding[,errors]]) ->object

b = 'strid'
>>> b.decode('utf-8')
u'strid'

5.用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置

    endswith(...)

    S.endswith(suffix[,start[, end]]) ->bool

>>> shaw = 'I am shaw,what\'s your name ?'
>>> shaw.endswith('?')
True
>>> shaw.endswith('w',7,9)
True
>>> shaw.endswith('w',7,8)
False

6.把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是8,tabsize -- 指定转换字符串中的 tab 符号('\t')转为空格的字符数。

    expandtabs(...)

    S.expandtabs([tabsize])-> string

>>> info = 'today is a good d\tay'
>>> print info.expandtabs()
today is a good d       ay
>>> print info.expandtabs(4)   # 把tab装换成4个空格
today is a good d   ay         
>>> printinfo.expandtabs(1)
today is a good d ay          # 把tab装换成1个空格

7.检测字符串中是否包含子字符串 str ,如果指定 beg(开始)和 end(结束)范围,则检查是否包含在指定范围内,如果包含子字符串,则返回开始的索引值,否则返回-1。

    find(...)

    S.find(sub [,start [,end]])-> int

>>> a = 'stivenwang'
>>> a.find('w')
6
>>> a.find('w',9)
-1
>>> a.find('w',9,11)
-1

8.格式换字符串输出(方法与%相似,但可以指定顺序)

    format(...)

    S.format(*args, **kwargs)-> string

>>> name = 'StivenWang'
>>> fruit = 'apple'
>>> print 'my name is {},I like {}'.format(name,fruit)
my name is StivenWang,I like apple
>>> print 'my name is {1},I like {0}'.format(fruit,name)
my name is StivenWang,I like apple
>>> print 'my name is {mingzi},I like{shuiguo}'.format(shuiguo=fruit,mingzi=name)
my name is StivenWang,I like apple

9.检测字符串string中是否包含子字符串 str ,如果存在,则返回str在string中的索引值,如果指定beg(开始)和 end(结束)范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常(ValueError: substring not found)。

   index(...)

    S.index(sub [,start [,end]])-> int

>>> str1 = "this is string example....wow!!!"
>>> str2 = "exam"
>>> print str1.index(str2)
15
>>> print str1.index(str2,20)
Traceback (most recent call last):
  File "<input>",line 1, in <module>
ValueError: substringnot found报错

10.检测字符串是否由字母或数字组成。

    isalnum(...)

    S.isalnum() -> bool

>>> a = &#39;123&#39;
>>> a.isalnum()
True
>>> b = &#39;shaw&#39;
>>> b.isalnum()
True
>>> c = &#39;shaw123&#39;
>>> c.isalnum()
True
>>> d = &#39;th 123&#39;
>>> d.isalnum()
False

11.检测字符串是否只由字母组成

    isalpha(...)

    S.isalpha() -> bool

>> a = &#39;123&#39;
>>> a.isalpha()
False
>>> b = &#39;123shaw&#39;
>>> b.isalpha()
False
>>> c = &#39;shaw&#39;
>>> c.isalpha()
True
>>> d = &#39;sha w&#39;
>>> d.isalpha()
False

12.检测字符串是否只由数字组成。

    isdigit(...)

    S.isdigit() -> bool

>>> a = &#39;123&#39;
>>> a.isdigit()
True
>>> b = &#39;shaw&#39;
>>> b.isdigit()
False
>>> c = &#39;123shaw&#39;
>>> c.isdigit()
False

13.检测字符串是否由小写字母组成。

    islower(...)

    S.islower() -> bool

>>> a = &#39;shaw&#39;
>>> a.islower()
True
>>> b = &#39;123&#39;
>>> a.islower()
True
>>> c = &#39;123shaw&#39;
>>> c.islower()
True
>>> d = &#39;SHAW&#39;
>>> d.islower()
False
>>> e = &#39;123SHAW&#39;
>>> e.islower()
False

14.检测字符串是否只由空格组成。

    isspace(...)

    S.isspace() -> bool

>>> a = &#39; &#39;
>>> a.isspace()
True
>>> a = &#39;123&#39;
>>> a.isspace()
False
>>> a = &#39;shaw&#39;
>>> a.isspace()
False

15.检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。

    istitle(...) 

    S.istitle() -> bool

>>> a = &#39;Shaw&#39;
>>> a.istitle()
True
>>> a = &#39;Shaw123&#39;
>>> a.istitle()
True
>>> a = &#39;123&#39;
>>> a.istitle()
False

16.检测字符串中所有的字母是否都为大写

    isupper(...)

      S.isupper() -> bool

>>> a = &#39;123&#39;
>>> a.isupper()
False
>>> a = &#39;Shaw&#39;
>>> a.isupper()
False
>>> a = &#39;Shaw123&#39;
>>> a.isupper()
False
>>> a = &#39;SHAW123&#39;
>>> a.isupper()
True

17.用于将序列中的元素以指定的字符连接生成一个新的字符串。

join(...)

    S.join(iterable) ->string

>>> a = &#39;-&#39;
>>> b = &#39;shaw&#39;
>>> print a.join(b)
s-h-a-w

18.返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。

    ljust(...)

    S.ljust(width[, fillchar])-> string

    width -- 指定字符串长度

    fillchar -- 填充字符,默认为空格

>>> s = &#39;shaw&#39;
>>> s.ljust(10)
&#39;shaw      &#39;
>>> s.ljust(10,&#39;8&#39;)
&#39;shaw888888&#39;

19.转换字符串中所有大写字符为小写。

    Lower(...)

    S.lower() -> string

>>> s = &#39;PYTHON&#39;
>>> s.lower()
&#39;python&#39;
>>> s = &#39;PYTHON123&#39;
>>> s.lower()
&#39;python123&#39;

20.用于截掉字符串左边的空格或指定字符。

    lstrip(...)

    S.lstrip([chars]) ->string or unicode

>>> s = &#39;%%%shaw&#39;
>>> s.lstrip(&#39;%&#39;)
&#39;shaw&#39;
>>> s = &#39;   shaw&#39;
>>> s.lstrip()
&#39;shaw

123456    >>> s = '%%%shaw'>>> s.lstrip('%')'shaw'>>> s = '   shaw'>>> s.lstrip()'shaw'    

21.根据指定的分隔符将字符串进行分割(返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串)

    partition(...)

    S.partition(sep) ->(head, sep, tail)

>>> S = &#39;are you know:lilin is lowser&#39;
>>> S.partition(&#39;lilin&#39;)
(&#39;are you know:&#39;, &#39;lilin&#39;, &#39; is lowser&#39;)

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

    replace(...)

    S.replace(old, new[,count]) -> string

>>> S = &#39;shaw&#39;
>>> S.replace(&#39;sh&#39;,&#39;LI&#39;)
&#39;LIaw&#39;

23.返回字符串最后一次出现的位置,如果没有匹配项则返回-1。

    rfind(...)

    S.rfind(sub [,start[,end]]) -> int

    str -- 查找的字符串

    beg -- 开始查找的位置,默认为0

    end -- 结束查找位置,默认为字符串的长度。

>>> s = &#39;lilin is good li lao ban&#39;
>>> s.rfind(&#39;li&#39;)
14
>>> s.rfind(&#39;li&#39;,0,8)
2

24.返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常,你可以指定可选参数[beg:end]设置查找的区间。

    rindex(...)

    S.rindex(sub [,start[,end]]) -> int

    语法:

      str.rindex(str,beg=0 end=len(string))

>>> s = &#39;my name is shaw&#39;
>>> s.rindex(&#39;s&#39;)
11
>>> s.rindex(&#39;s&#39;,5,10)
9
>>> s.rindex(&#39;s&#39;,2,8)
Traceback (most recent call last):
  File "<input>",line 1, in <module>
ValueError: substring not found

25.返回的原/新字符串右对齐,且默认使用空格填充至指定长度(width)的新字符串。如果指定的长度(width)小于原字符串的长度则返回原字符串

    rjust(...)

    S.rjust(width[, fillchar])-> string

    语法:

      str.rjust(width[,fillchar])

       width -- 指定填充指定字符后新字符串的总长度.

       fillchar– 要填充的字符,默认为空格。

>>> s = &#39;sch&#39;
>>> s.rjust(20)
&#39;                 sch&#39;
>>> s.rjust(20,&#39;0&#39;)
&#39;00000000000000000sch&#39;
>>> s.rjust(20,&#39;H&#39;)
&#39;HHHHHHHHHHHHHHHHHsch&#39;

26.删除 string 字符串末尾的指定字符(默认为空格).

    rstrip(...)

    S.rstrip([chars]) ->string or unicode

    语法:

      str.rstrip([chars])

>>> s = &#39;shaw\n&#39;
>>> s.rstrip(&#39;\n&#39;)
&#39;shaw&#39;

27.通过指定分隔符对字符串进行切片,如果参数num有指定值,则仅分隔 num 个子字符串

    split(...)

    S.split([sep [,maxsplit]])-> list ofstrings

    语法:

   str.split(str="",num=string.count(str)).

>>> s = &#39;shaw\nlinux\nmac&#39;
>>> s.split(&#39;\n&#39;)
[&#39;shaw&#39;, &#39;linux&#39;, &#39;mac&#39;]
>>> s.split(&#39;\n&#39;,1)
[&#39;shaw&#39;, &#39;linux\nmac&#39;]

28.按照行分隔,返回一个包含各行作为元素的列表,如果 num 指定则仅切片 num 个行.

    splitlines(...)

    S.splitlines(keepends=False)-> list ofstrings

    语法:

      str.splitlines( num=string.count('\n'))

       num -- 分割行的次数。

>>> s = &#39;what\&#39;s your name?\n my name is shaw\n how old areyou?&#39;
>>> s.splitlines()
["what&#39;s your name?", &#39; my name is shaw&#39;, &#39; how old areyou?&#39;]
>>> s.splitlines(1)
["what&#39;s your name?\n", &#39; my name is shaw\n&#39;, &#39; how old areyou?&#39;]
>>> s.splitlines(3)

29.用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end指定值,则在指定范围内检查。

    startswith(...)

    S.startswith(prefix[,start[, end]]) ->bool

    语法:

    str.startswith(str,beg=0,end=len(string))

    str -- 检测的字符串。

    strbeg -- 可选参数用于设置字符串检测的起始位置。

    strend -- 可选参数用于设置字符串检测的结束位置。

>>> s = &#39;my name is shaw&#39;
>>> s.startswith(&#39;my&#39;)
True
>>> s.startswith(&#39;my&#39;,10,15)
False

30.用于移除字符串头尾指定的字符(默认为空格)。

    strip(...)

    S.strip([chars]) ->string or unicode

>>> s = &#39;my name is sam&#39;
>>> s.strip(&#39;m&#39;)
&#39;y name is sa&#39;

31.用于对字符串的大小写字母进行转换(小写转大写,大写转小写)

    swapcase(...)

    S.swapcase() -> string

>>> s = &#39;stiven&#39;
>>> s.swapcase()
&#39;STIVEN&#39;
>>> s = &#39;SHAW&#39;
>>> s.swapcase()
&#39;shaw&#39;

32.返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写。

    title(...)

    S.title() -> string

>>> s = &#39;my name is shaw&#39;
>>> s.title()
&#39;My Name Is Shaw&#39;

33.根据参数table给出的表(包含 256 个字符)转换字符串的字符, 并返回翻译后的字符串。要过滤掉的字符放到del 参数中

    translate(...)

    S.translate(table [,deletechars])->string

    语法:

      str.translate(table[, deletechars])

       table -- 翻译表,翻译表是通过maketrans方法转换而来。

      deletechars -- 字符串中要过滤的字符列表。

>>> from string import maketrans
suchas = maketrans(&#39;sm&#39;,&#39;@$&#39;)
>>> s = &#39;this is sam\&#39;s dog&#39;
>>> s
"this is sam&#39;s dog"
>>> s.translate(suchas)
"thi@ i@ @a$&#39;@ dog"
>>> s.translate(suchas,&#39;dog&#39;) 去除d,o,g字符
"thi@ i@ @a$&#39;@ "

34.将字符串中的小写字母转为大写字母

    upper(...)

    S.upper() -> string

>>> s = &#39;sam&#39;
>>> s.upper()
&#39;SAM&#39;
>>> s = &#39;23sam&#39;
>>> s.upper()
&#39;23SAM&#39;
>>> s = &#39;23s am&#39;
>>> s.upper()
&#39;23S AM&#39;

作者:terry
blog:http://www.cnblogs.com/kkterry/
Weibo:http://weibo.com/kkterry
E-mail:doubleginger@163.com
欢迎转载,还请标明出处

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn