设为首页 加入收藏

TOP

Python字符串方法大全(二)
2018-06-09 10:07:59 】 浏览:785
Tags:Python 字符串 方法 大全
2'.isidentifier())
True
>>> print('_abc2'.isidentifier())
True
>>> print('_abc_2'.isidentifier())
True
>>> print('_Abc_2'.isidentifier())
True
>>> print('Abc_2'.isidentifier())
True


3.填充


3.1 center


S.center(width[, fillchar])


将字符串居中,左右两边使用fillchar进行填充,使得整个字符串的长度为width。fillchar默认为空格。如果width小于字符串的长度,则无法填充直接返回字符串本身(不会创建新字符串对象)。


例如:


1.使用下划线填充并居中字符串


>>> print('ab'.center(4,'_'))
_ab_
>>> print('ab'.center(5,'_'))
__ab_


2.使用默认的空格填充并居中字符串


>>> print('ab'.center(4))
 ab
>>> print(len('ab'.center(4)))
4


3.width小于字符串长度


>>> print('abcde'.center(3))
abcde


3.2 ljust和rjust


S.ljust(width[, fillchar])
 S.rjust(width[, fillchar])


ljust()使用fillchar填充在字符串S的右边,使得整体长度为width。rjust()则是填充在左边。如果不指定fillchar,则默认使用空格填充。


如果width小于或等于字符串S的长度,则无法填充,直接返回字符串S(不会创建新字符串对象)。


例如:


>>> print('xyz'.ljust(5,'_'))
xyz__
>>> print('xyz'.rjust(5,'_'))
__xyz


3.3 zfill


S.zfill(width)


用0填充在字符串S的左边使其长度为width。如果S前右正负号+/-,则0填充在这两个符号的后面,且符号也算入长度。


如果width小于或等于S的长度,则无法填充,直接返回S本身(不会创建新字符串对象)。


>>> print('abc'.zfill(5))
00abc


>>> print('-abc'.zfill(5))
-0abc


>>> print('+abc'.zfill(5))
+0abc


>>> print('42'.zfill(5))
00042


>>> print('-42'.zfill(5))
-0042


>>> print('+42'.zfill(5))
+0042


4.子串搜索


4.1 count


S.count(sub[, start[, end]])


返回字符串S中子串sub出现的次数,可以指定从哪里开始计算(start)以及计算到哪里结束(end),索引从0开始计算,不包括end边界。


例如:


>>> print('xyabxyxy'.count('xy'))
3


# 次数2,因为从index=1算起,即从'y'开始查找,查找的范围为'yabxyxy'
>>> print('xyabxyxy'.count('xy',1))
2


# 次数1,因为不包括end,所以查找的范围为'yabxyx'
>>> print('xyabxyxy'.count('xy',1,7))
1


# 次数2,因为查找的范围为'yabxyxy'
>>> print('xyabxyxy'.count('xy',1,8))
2


4.2 endswith和startswith


S.endswith(suffix[, start[, end]])
 S.startswith(prefix[, start[, end]])


endswith()检查字符串S是否已suffix结尾,返回布尔值的True和False。suffix可以是一个元组(tuple)。可以指定起始start和结尾end的搜索边界。


同理startswith()用来判断字符串S是否是以prefix开头。


例如:


1.suffix是普通的字符串时。


>>> print('abcxyz'.endswith('xyz'))
True
 
# False,因为搜索范围为'yz'
>>> print('abcxyz'.endswith('xyz',4))
False
 
# False,因为搜索范围为'abcxy'
>>> print('abcxyz'.endswith('xyz',0,5))
False
>>> print('abcxyz'.endswith('xyz',0,6))
True


2.suffix是元组(tuple)时,只要tuple中任意一个元素满足endswith的条件,就返回True。


# tuple中的'xyz'满足条件
>>> print('abcxyz'.endswith(('ab','xyz')))
True
 
# tuple中'ab'和'xy'都不满足条件
>>> print('abcxyz'.endswith(('ab','xy')))
False
 
# tuple中的'z'满足条件
>>> print('abcxyz'.endswith(('ab','xy','z')))
True


4.3 find,rfind和index,rindex


S.find(sub[, start[, end]])
 S.rfind(sub[, start[, end]])¶
 S.index(sub[, start[, end]])
 S.rindex(sub[, start[, end]])


find()搜索字符串S中是否包含子串sub,如果包含,则返回sub的索引位置,否则返回"-1"。可以指定起始start和结束end的搜索位置。


index()和find()一样,唯一不同点在于当找不到子串时,抛出ValueError错误。


rfind()则是返回搜索到的最右边子串的位置,如果只搜索到一个或没有搜索到子串,则和find()是等价的。


同理rindex()。


例如:


>>> print('abcxyzXY'.find('xy'))
3
>>> print('abcxyzXY'.find('Xy'))
-1
>>> print('abcxyzXY'.find('xy',4))
-1


>>> print('xyzabcabc'.find('bc'))
4
>>> print('xyzabcabc'.rfind('bc'))
7


>>> print('xyzabcabc'.rindex('bcd'))
Traceback (most recent call

首页 上一页 1 2 3 4 5 下一页 尾页 2/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Java泛型实例详解 下一篇Java高并发之线程池详解

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目