python内置字符串处理方法_常用的21个内置字符串处理方法

《Python语言程序设计基础》:

在Python解析器内部,所有数据类型都采用面向对象方式实现,封装成一个类。

字符串也是一个类,它具有类似.()形式的字符串处理函数。

在面向对象中,这类函数被称为“方法”。

无特别说明,str是将要进行处理的目标字符串。全部方法操作后返回副本,不赋值。

1、大小写转换str.lower() #返回字符串str的小写副本

str.upper() #返回字符串str的大写副本

str.capitalize() #把字符串第一个字母大写,其余小写

str.swapcase() #字符串大写和小写字母相互转换

>>> str = "Winter Is Coming!"

>>> str.lower() #返回字符串str的小写副本

'winter is coming!'

>>> str.upper() #返回字符串str的大写副本

'WINTER IS COMING!'

>>> str.capitalize() #把字符串第一个字母大写,其余小写

'Winter is coming!'

>>> str.swapcase() #字符串大写和小写字母相互转换

'wINTER iS cOMING!'

2、判断是否大小写str.islower() #当str所有字符都是小写时,返回True,否则返回False

str.isupper() #当str所有字符都是大写时,返回True,否则返回False

>>> str = "Winter Is Coming!"

>>> str.islower() #当str所有字符都是小写时,返回True,否则返回False

False

>>> str.isupper() #当str所有字符都是大写时,返回True,否则返回False

False

3、判断数字、空格str.isnumeric() #当str所有字符都是数字时,返回True,否则返回False

str.isspace() #当str所有字符都是空格时,返回True,否则返回False

>>> str1 = "15013095593"

>>> str1.isnumeric() #当str所有字符都是数字时,返回True,否则返回False

True

>>> str2 = " "

>>> str2.isspace() #当str所有字符都是空格时,返回True,否则返回False

True

4、去掉字符串空格str.strip() #去除str头尾空格

str.lstrip() #去除str头部left的空格

str.rstrip() #去除str尾部right的空格

str.replace(' ','') #替换str中全部的空格

>>> str3 = " Winter Is Coming! "

>>> str3.strip() #去除str头尾空格

'Winter Is Coming!'

>>> str3.lstrip() #去除str头部left的空格

'Winter Is Coming! '

>>> str3.rstrip() #去除str尾部right的空格

' Winter Is Coming!'

>>> str3.replace(' ','') #替换str中全部的空格

'WinterIsComing!'

注意,以上多个函数方法括号内并无参数,str.replace()除外。

且str.replace()鹤立鸡群,与众不同!

5、字符串替换处理str.replace(old,new[,count]) #所有old子串被替换成new子串,count指替换次数,[]为可选

>>> str = "Winter Is Coming!"

>>> str = str.replace(" ","--",2) #所有空格被替换成“--”,替换次数2

'Winter--Is--Coming!'

>>> print(str)

Winter--Is--Coming!

注意,如果使用for循环进行多个字符替换,左侧被赋值变量名应与原先变量名保持一致,以便顺利多次迭代!

6、字符串检索str.find(sub[,start[,end]]) #在指定范围内,按顺序从左到右,检索sub子串第一次出现位置

str.rfind(sub[,start[,end]]) #在指定范围内,按顺序从右到左,检索sub子串第一次出现位置

sub子串为检索目标,start和end指定检索范围,可选,缺省时默认str[:]。检索不到目标字符串时返回-1。

>>> str = "Winter Is Coming!"

>>> str.find("n") #在指定范围内,按顺序从右到左,检索sub子串第一次出现位置

2

>>> str.rfind("n") #在指定范围内,按顺序从右到左,检索sub子串第一次出现位置

14

>>> str.find("a")

-1

>>> str.rfind("a")

-1

注意,无论是从左到右检索,还是从右到左检索,返回的序号都是正向序号。str.index和str.rindex用法与上述大致相同。

7、字符串切割

str.split()则不再赘述。

8、计算子串出现次数str.count(sub[,start[,end]]) #返回str[start:end]中子串出现的次数

>>> str = "Winter Is Coming!"

>>> str.count('n') #返回str[start:end]中子串出现的次数

2

9、连接字符串str.join(iterable) #返回一个新字符串,由一个序列对象元素组成,用str进行连接

>>> a='---'#间隔符号1

>>> b=' '#间隔符号2

>>> str = "Winter Is Coming!"

>>> ls = str.split()#生成列表ls

>>> print(a.join(ls))

Winter---Is---Coming!

>>> print(b.join(ls))

Winter Is Coming!

10、数字型字符串格式化str.zfill(width)#返回width长度的字符子串,长度不够则用0填充,主要用于数字型字符串

>>> str1 = "15013095593"

>>> str2 = "-15013095593"

>>> str1.zfill(20)

'00000000015013095593'

>>> str2.zfill(20)

'-0000000015013095593'

11、匹配头尾子串str.startswith(prefix[,start[,end]])#str[start:end]以 prefix 开始返回True,否则返回False

str.endswith(suffix[,start[,end]])#str[start:end]以 suffix 结尾返回True,否则返回False

>>> str = "Winter Is Coming!"

>>> str.startswith('W')

True

>>> str.endswith("!")

True

12、以上方法其实归属于Python的string模块的常用方法,现在我们来说一下他的常用字符串常量。

# 使用常量需要import

>>> import string as str

# 生成所有小写字母

>>> str.ascii_lowercase

'abcdefghijklmnopqrstuvwxyz'

# 生成所有大写字母

>>> str.ascii_uppercase

'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

# 小写字母和大写字母

>>> str.ascii_letters

'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

# 数字字符串0-9

>>> str.digits

'0123456789'

# 十六进制数

>>> str.hexdigits

'0123456789abcdefABCDEF'

# 八进制数

>>> str.octdigits

'01234567'

# 可打印的字符串,包含数字、字母和标点符号

>>> str.printable

'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'

# 所有标点符号

>>> str.punctuation

'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'

# 转义符

>>> str.whitespace

' \t\n\r\x0b\x0c'

>>> print("{0:a^20s}".format("离开应该体面"))

aaaaaaaa离开应该体面aaaaaaaa

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值