如下学习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个
立即学习“Python免费学习笔记(深入)”;
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)
14.以指定的编码格式解码字符串。默认编码为字符串编码(适合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)
False6.把字符串中的 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)
-18.格式换字符串输出(方法与%相似,但可以指定顺序)
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 apple9.检测字符串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 = '123' >>> a.isalnum() True >>> b = 'shaw' >>> b.isalnum() True >>> c = 'shaw123' >>> c.isalnum() True >>> d = 'th 123' >>> d.isalnum() False
11.检测字符串是否只由字母组成
isalpha(...)
S.isalpha() -> bool
>> a = '123' >>> a.isalpha() False >>> b = '123shaw' >>> b.isalpha() False >>> c = 'shaw' >>> c.isalpha() True >>> d = 'sha w' >>> d.isalpha() False
12.检测字符串是否只由数字组成。
isdigit(...)
S.isdigit() -> bool
>>> a = '123' >>> a.isdigit() True >>> b = 'shaw' >>> b.isdigit() False >>> c = '123shaw' >>> c.isdigit() False
13.检测字符串是否由小写字母组成。
islower(...)
S.islower() -> bool
>>> a = 'shaw' >>> a.islower() True >>> b = '123' >>> a.islower() True >>> c = '123shaw' >>> c.islower() True >>> d = 'SHAW' >>> d.islower() False >>> e = '123SHAW' >>> e.islower() False
14.检测字符串是否只由空格组成。
isspace(...)
S.isspace() -> bool
>>> a = ' ' >>> a.isspace() True >>> a = '123' >>> a.isspace() False >>> a = 'shaw' >>> a.isspace() False
15.检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。
istitle(...)
S.istitle() -> bool
>>> a = 'Shaw' >>> a.istitle() True >>> a = 'Shaw123' >>> a.istitle() True >>> a = '123' >>> a.istitle() False
16.检测字符串中所有的字母是否都为大写
isupper(...)
S.isupper() -> bool
>>> a = '123' >>> a.isupper() False >>> a = 'Shaw' >>> a.isupper() False >>> a = 'Shaw123' >>> a.isupper() False >>> a = 'SHAW123' >>> a.isupper() True
17.用于将序列中的元素以指定的字符连接生成一个新的字符串。
join(...)
S.join(iterable) ->string
>>> a = '-' >>> b = 'shaw' >>> print a.join(b) s-h-a-w
18.返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。
ljust(...)
S.ljust(width[, fillchar])-> string
width -- 指定字符串长度
fillchar -- 填充字符,默认为空格
>>> s = 'shaw' >>> s.ljust(10) 'shaw ' >>> s.ljust(10,'8') 'shaw888888'
19.转换字符串中所有大写字符为小写。
Lower(...)
S.lower() -> string
>>> s = 'PYTHON' >>> s.lower() 'python' >>> s = 'PYTHON123' >>> s.lower() 'python123'
20.用于截掉字符串左边的空格或指定字符。
lstrip(...)
S.lstrip([chars]) ->string or unicode
>>> s = '%%%shaw'
>>> s.lstrip('%')
'shaw'
>>> s = ' shaw'
>>> s.lstrip()
'shaw123456 >>> s = '%%%shaw'>>> s.lstrip('%')'shaw'>>> s = ' shaw'>>> s.lstrip()'shaw'
21.根据指定的分隔符将字符串进行分割(返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串)
partition(...)
S.partition(sep) ->(head, sep, tail)
>>> S = 'are you know:lilin is lowser'
>>> S.partition('lilin')
('are you know:', 'lilin', ' is lowser')22.把字符串中的 old(旧字符串)替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
replace(...)
S.replace(old, new[,count]) -> string
>>> S = 'shaw'
>>> S.replace('sh','LI')
'LIaw'23.返回字符串最后一次出现的位置,如果没有匹配项则返回-1。
rfind(...)
S.rfind(sub [,start[,end]]) -> int
str -- 查找的字符串
beg -- 开始查找的位置,默认为0
end -- 结束查找位置,默认为字符串的长度。
>>> s = 'lilin is good li lao ban'
>>> s.rfind('li')
14
>>> s.rfind('li',0,8)
224.返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常,你可以指定可选参数[beg:end]设置查找的区间。
rindex(...)
S.rindex(sub [,start[,end]]) -> int
语法:
str.rindex(str,beg=0 end=len(string))
>>> s = 'my name is shaw'
>>> s.rindex('s')
11
>>> s.rindex('s',5,10)
9
>>> s.rindex('s',2,8)
Traceback (most recent call last):
File "<input>",line 1, in <module>
ValueError: substring not found25.返回的原/新字符串右对齐,且默认使用空格填充至指定长度(width)的新字符串。如果指定的长度(width)小于原字符串的长度则返回原字符串
rjust(...)
S.rjust(width[, fillchar])-> string
语法:
str.rjust(width[,fillchar])
width -- 指定填充指定字符后新字符串的总长度.
fillchar– 要填充的字符,默认为空格。
>>> s = 'sch' >>> s.rjust(20) ' sch' >>> s.rjust(20,'0') '00000000000000000sch' >>> s.rjust(20,'H') 'HHHHHHHHHHHHHHHHHsch'
26.删除 string 字符串末尾的指定字符(默认为空格).
rstrip(...)
S.rstrip([chars]) ->string or unicode
语法:
str.rstrip([chars])
>>> s = 'shaw\n'
>>> s.rstrip('\n')
'shaw'27.通过指定分隔符对字符串进行切片,如果参数num有指定值,则仅分隔 num 个子字符串
split(...)
S.split([sep [,maxsplit]])-> list ofstrings
语法:
str.split(str="",num=string.count(str)).
>>> s = 'shaw\nlinux\nmac'
>>> s.split('\n')
['shaw', 'linux', 'mac']
>>> s.split('\n',1)
['shaw', 'linux\nmac']28.按照行分隔,返回一个包含各行作为元素的列表,如果 num 指定则仅切片 num 个行.
splitlines(...)
S.splitlines(keepends=False)-> list ofstrings
语法:
str.splitlines( num=string.count('\n'))
num -- 分割行的次数。
>>> s = 'what\'s your name?\n my name is shaw\n how old areyou?' >>> s.splitlines() ["what's your name?", ' my name is shaw', ' how old areyou?'] >>> s.splitlines(1) ["what's your name?\n", ' my name is shaw\n', ' how old areyou?'] >>> 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 = 'my name is shaw'
>>> s.startswith('my')
True
>>> s.startswith('my',10,15)
False30.用于移除字符串头尾指定的字符(默认为空格)。
strip(...)
S.strip([chars]) ->string or unicode
>>> s = 'my name is sam'
>>> s.strip('m')
'y name is sa'31.用于对字符串的大小写字母进行转换(小写转大写,大写转小写)
swapcase(...)
S.swapcase() -> string
>>> s = 'stiven' >>> s.swapcase() 'STIVEN' >>> s = 'SHAW' >>> s.swapcase() 'shaw'
32.返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写。
title(...)
S.title() -> string
>>> s = 'my name is shaw' >>> s.title() 'My Name Is Shaw'
33.根据参数table给出的表(包含 256 个字符)转换字符串的字符, 并返回翻译后的字符串。要过滤掉的字符放到del 参数中
translate(...)
S.translate(table [,deletechars])->string
语法:
str.translate(table[, deletechars])
table -- 翻译表,翻译表是通过maketrans方法转换而来。
deletechars -- 字符串中要过滤的字符列表。
>>> from string import maketrans
suchas = maketrans('sm','@$')
>>> s = 'this is sam\'s dog'
>>> s
"this is sam's dog"
>>> s.translate(suchas)
"thi@ i@ @a$'@ dog"
>>> s.translate(suchas,'dog') 去除d,o,g字符
"thi@ i@ @a$'@ "34.将字符串中的小写字母转为大写字母
upper(...)
S.upper() -> string
>>> s = 'sam' >>> s.upper() 'SAM' >>> s = '23sam' >>> s.upper() '23SAM' >>> s = '23s am' >>> s.upper() '23S AM'
作者:terry
blog:http://www.cnblogs.com/kkterry/
Weibo:http://weibo.com/kkterry
E-mail:doubleginger@163.com
欢迎转载,还请标明出处
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号