一、字符串处理
字符串对象是不可改变的,也就是说在python创建一个字符串后,你不能把这个字符中的某一部分改变。任何上面的函数改变了字符串后,都会返回一个新的字符串,原字串并没有变。
1.1 【增】
1.1.1 字符串的拼接
用加号拼接
>>>s='hello'+'world'
>>>print(s)
helloworld
用join 拼接
>>>a='world'
>>>s=''.join(a)
>>>print(s)
world
用乘法重叠
>>>s='hello'*2
>>>print(s)
hellohello
1.2 【删】
1.21 split删除分割
描 述:指定分割符对字符串进行切片
1,strip()默认删除行首或者行尾的空白符(包括’\n’, ‘\r’, ‘\t’, ’ ')
2,切片提取进行删除
输出结果:list
实 例:
#!/usr/bin/python
str = "Line1-abcdef \nLine2-abc \nLine4-abcd";
print (str.split( ))
print (str.split(' ', 1 ))
结果:
['Line1-abcdef', 'Line2-abc', 'Line4-abcd']
['Line1-abcdef', '\nLine2-abc \nLine4-abcd']
# 以o为分割
print(str.split('o')) # ['hell', ',w', 'rld,hell', '']
# 以逗号分割
print(str.split(',')) # ['hello', 'world', 'hello']
>>>s=' ---anj123kks+++ '
>>>s.strip() 删除两边的空白
'---anj123kks+++'
>>>print(s.strip()) 测试打印的结果
---anj123kks+++
>>>s.lstrip() 删除左边的空白字符
'---anj123kks+++ '
>>>s.rstrip() 删除右边的空白字符
' ---anj123kks+++'
>>>s.strip().strip('-+') 删除两边的空白和‘- +’字符
'anj123kks'
>>>s[4:13] 使用切片删除不需要的字符
'anj123kks'
>>>s[4:6]+s[11:13] 切片和拼接删除
'anks'
1.3【改】
1.3.1 replace()替换
描 述:方法把字符串的原字符串替换成新字符串。
输出结果:str
实 例:
#!/usr/bin/python
str = "this is string example....wow!!! this is really string";
print (str.replace("is", "was"))
print (str.replace("is", "was", 3))
结果:
thwas was string example....wow!!! thwas was really string
thwas was string example....wow!!! thwas is really string
1.4【查】 字符串查找替换
1.41索引s[1]
1.42切片s[0:1]
1.4.3 find() 查找
描 述:检测字符串中是否包含想要查找的字符。如果包含字符串返回字符串的索引值,否则返回-1
输出结果:索引或-1
实 例:
#!/usr/bin/env python
name = 'chenxin shi da hao ren.'
name1 = name.find('hao',20)
print(name1)
name2 = name.find('hao',10)
print(name2)
结 果:
-1
15
1.4.4 index() 查找
描 述:检测字符串中是否包含子字符串str
输出结果:索引值或报错
#!/usr/bin/python
str1 = "this is string example....wow!!!";
str2 = "exam";
print str1.index(str2);
print str1.index(str2, 10);
print str1.index(str2, 40);
结 果:
15
15
1.4.3 count() 统计
描 述:方法用来统计,必须填写关键字,默认为从头到尾。
输出结果:int
实 例:
#!/usr/bin/env python
name = 'chenxin'
name1 = name.count('e',0,4)
print(name1)
结 果:
1
1.5 【转换】
1.5.1 字符串格式化输出:%或format()
实例:
#!/usr/bin/env python
data = [4,8,15,16,24,67]
print('输出整数%d浮点数%.2f'%(data[2],data[0]))
print('{d[2]} {d[0]}'.format(d=data))
print('{0} {1}'.format(data[2],data[0])
结果:
输出整数15浮点数4.00
15 4
15 4
1.5.2 lower() 将所有大写转换为小写/S.upper()将所有小写转换为大写
描 述:转换字符串所有大写字符为小写
输出结果:字符串str
实 例:
#!/usr/bin/env python name = "CHENXIN" name1 = name.lower() print(name1) 结果: chenxin S.upper()将所有小写转换为大写 返回S字符串的小写、大写格式。
print('ab XY'.upper())AB #》》XY
1.5.4 swapcase()字母的大小写字符转换
描 述:用于对字符串的大小写字母进行转换
输出结果:str
实 例:
str = "this is string example....wow!!!";
print (str.swapcase())
str = "THIS IS STRING EXAMPLE....WOW!!!";
print (str.swapcase())
结 果:
THIS IS STRING EXAMPLE....WOW!!!
this is string example....wow!!!
1.5.3 capitalize() 第一个字母变大写
描 述:将字符串的第一个字母变为大写字母(不是每个单词的首字母,而是一对双引号引起来的一组字符串)
输出结果;str
实 例:
#!/usr/bin/env python3
name = "chenxin chenxing wo ai ni"
name1 = name.capitalize()
print(name1)
结 果:
Chenxin chenxing wo ai ni
1.5.5 title()将所有单词的字母大写开头
描 述:方法标题化的字符串,就是说所有单词都是以大写开始,其余字母均为小写。
输出结果:str
实 例:
#!/usr/bin/python
str = "this is string example....wow!!!";
print (str.title())
结 果:
This Is String Example....Wow!!!
1.5.4 casefold() 所有字母为小写
描 述:将字符串所有字母变为小写。
输出结果:str
实 例:
#!/usr/bin/env python3
name = "NI SHI SHA BI ME?"
name1 = name.casefold()
print(name1)
结 果:
ni shi sha bi me?
1.6 字符串判断
1.6.1 startswith()判断是否已指定字符开头
描 述:方法用于判断字符串是否是以指定的字符串开头
输出结果:Ture,False
实 例:
#!/usr/bin/python
str = "this is string example....wow!!!";
print (str.startswith( 'this' ))
print (str.startswith( 'is', 2, 4 ));
print (str.startswith( 'this', 2, 4 ));
结果:
True
True
False
1.6.2 endswith() 判断是否以指定后缀结尾
描 述:方法用于判断字符串是否以指定后缀结尾。
输出结果:Ture,False
实 例:
#!/usr/bin/python
str = "this is string example....wow!!!";
suffix = "wow!!!";
print (str.endswith(suffix))
print (str.endswith(suffix,20))
suffix = "is";
print str.endswith(suffix, 2, 4);
print str.endswith(suffix, 2, 6);
结 果:
True
True
True
False
1.6.3 isalnum() 判断是否由字母和数字组成
描 述:检测一组字符串(整个字符串,而不是一个单词)是否由字符和数字组成
输出结果:True,False
实 例:
#!/usr/bin/env python
name = 'chenxin'
name1 = name.isalnum()
print(name1)
str = 'this is string example....wow!!!'
str1 = str.isalnum()
print(str1)
结果:
True
False
1.6.4 isalpha() 判断是否只有字母组成
描 述:检测字符串是否只有字母组成
输出结果:True,False
实 例:
#!/usr/bin/env python
name = 'chenxin'
name1 = name.isalpha()
print(name1)
str = 'chen12'
str1 = str.isalpha()
print(str1)
结果:
True
False
1.6.5 isdecimal() 判断是否只含十进制字符
描 述:检测字符串是否只包含十进制字符,这种方法址存在unicode对象,定义一个十进制字符串,只需要在字符串前面加'u'前缀即可。
输出结果:True,False
实 例:
#!/usr/bin/env python
name = "123456"
name1 = name.isdecimal()
print(name1)
str = "chenxin"
print(str.isdecimal())
结果:
True
False
1.6.6 isdigit() 判断是否只是数字
描 述:检测字符串是否只由数字组成
输出结果:True,False
1.6.9 isnumeric() 判断只包含数字
描述:判断只由数字组成,数字字符范围很大,比较isdigit范围大
输出结果:True,False
1.6.7 isidentifier()判断是否合法的标识符
描 述:判断字符串是否是合法的标识符,字符串仅包含中文字符合法,实际上这里判断的是变量名是否合法:
输出结果:True,False
1.6.8 islower() 判断是否由小写字母组成
描 述:检测字符串是否只有小写字母组成
输出结果:True,False
1.6.9 isuppe()判断是否都是大写
描 述:检测字符串是否都为大写。
输出结果:返回True或False
1.6.10 isprintable() 判断是否全部可打印
描 述:判断字符串所包含的字符是否全部可打印。字符串包含不可打印字符,如转义字符
输出结果:True,False
1.6.11 isspace() 判断只包含空格或制表符
描 述:判断字符串是否仅包含空格或制表符。注意:空格字符与空白是不同的
返回结果:True,False
1.6.12 istitle()判断首字母大写
描 述:检测字符串所有单词拼写字母是否首字母大写,其他字母小写。
输出结果:返回True或False