一、字符串操作函数
1. upper
2. lower
3. title
4. swapcase
5. capitalize
6. count('x')
7. len(string)
8. find
9. index
10. center
11. ljust
12. rjust
13. zfill
14. strip
15. rstrip
16. lstrip
17. repalce
18. join
19. split
20. splitlines
21. eval
二、字符串判断函数
1. startswith
2. endswith
3. isupper
4. islower
5. isalnum
6. isalpha
7. isdigit
8. isnumeric
9. isdecimal
10. isspace
11. istitle
三、str模块函数
映射表 (str不用导入,直接用)
1. str.maketrans
2. translate
四、string模块
import string
1. string.whitespace
2. string.ascii_letters
3. string.ascii_uppercase
4. string.ascii_lowercase
5. string.digits
6. string.octdigits
7. string.hexdigits
8. string.printable
9. string.punctuation
一、字符串操作函数
eval(expression[,globals[,locals]])
功能:将字符串当成有效的表达式来求值,并返回结果
参数:
expression: -- 字符串类型的表达式 globals: --变量作用域,全局命名空间,如果被提供,则必须是一个字典**对象** locals: --变量作用域,局部命名空间,如果被提供,可以是任何映射**对象**
返回值:
表达式的结果
expression字符串的使用
>>>string1 = "[1,'213',{12:'sdf'},'2324']"
>>>result = eval(string1)
>>>print(result,type(result))
[1, '213', {12: 'sdf'}, '2324'] <class 'list'>
globals参数的使用
>>> globals1 = {'ac':1,'b':2} #注意字典里的变量a和b都是字符串!
>>> string2 = 'ac+b'
>>> result1 = eval(string2,globals1)
>>> print(result1,type(result1))
3 <class 'int'>
locals参数的使用
>>>globals3 = {'var1':23,'var2':34}
>>>locals3 = {'t':878,'u':97}
>>>string3 = 'var1-var2 +t/u'
>>>results = eval(string3,globals3,locals3)
>>>print(results,type(results)) #自我感觉globals,locals就是引入变量的作用域
-1.9484536082474229 <class 'float'>
upper()
功能:将字符串小写字母变为大写字母
返回值:大写字符串
>>>var1 = 'i dream my painting,and then i paint my dream.'
>>>result = var1.upper() ###注意是在字符串后面添加upper()函数,不是在upper()函数里面添加字符串。
>>>print(result)
I DREAM MY PAINTING,AND THEN I PAINT MY DREAM.
lower()
功能:将字符串大写字母变为小写字母
返回值:小写字符串
>>>str1 = 'WHEN I WAS YOUNG,NOSTALGIA WAS A TINY,TINY STAMP'
>>>result = str1.lower()
>>>print(result)
when i was young,nostalgia was a tiny,tiny stamp
title()
功能:将字符串语句里的单词开头字母大写
返回值:单词开头字母大写的字符串
>>>str1 = "Dont't you feel any compunction?"
>>>result = str1.title()
>>>print(result)
Dont'T You Feel Any Compunction?
swapcase()
功能:将字符串大小写互换
返回值:大小写互换之后字符串
>>>str1 = "Life's like a movie,write your own ending,Keep believing,keep pretending."
>>>results = str1.swapcase()
>>>print(results)
lIFE'S LIKE A MOVIE,WRITE YOUR OWN ENDING,kEEP BELIEVING,KEEP PRETENDING.
capitalize()
功能:将段落的一个字母大写
>>>print("love doesn't end,just because we dont't see each other.".capitalize())
Love doesn't end,just because we dont't see each other.
count()
功能:统计某个字符或字符串出现的次数
>>>str1 = 'sdfsdgsdgsdgdsgdsgd'
>>>print(str1.count('s'))
6
len()
>>>str1 = 'abcdefghijhlmnopqrstuvwxyz'
>>>result = str1.find('d')
>>>print(result)
>>>result1 = str1.find('4')
>>>print(result1)
3
-1
功能:统计字符串的长度
>>>str1 = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
>>>print(len(str1))#注意字符串放在len()函数里进行计算。
38
find()
功能:查找某个第一个符合字符或字符串的索引
返回值:查询到返回索引值,查询不到返回-1,不会报错
index()
功能:查找某个第一个符合字符或字符串的索引
返回值:查询到返回索引值,查询不到报错
>>>str1 = 'abcdefghijhlmnopqrstuvwxyz'
>>>result = str1.index('d')
>>>print(result)
>>>result1 = str1.index('4')
>>>print(result1)
3
center(未来字符宽度,空白填充字符)
功能:指定字符串长度,并居中,空余指定长度超过字符长度时,可以指定用某个字符代替
参数:center(未来字符宽度,空白填充字符),字符宽度必须指定,空白填充字符没有时,默认用空格代替
>>>str1 = ' sefs dsfd gs dg d gsdg dsgsdgsdg'
>>>result = str1.center(100,'*')
>>>result1 = str1.center(100)
>>>print(result)
>>>print(result1)
****************************** sefs dsfd gs dg d gsdg dsgsdgsdg*******************************
sefs dsfd gs dg d gsdg dsgsdgsdg
ljust()
功能:向左对齐 ,参数同上
rjust()
功能:向右对齐,参数同上
zfill(未来字符宽度)
功能:用0填充空白位置
>>>str1 = 'sfsdjflsdjg dsg'
>>>print(str1.zfill(20))
00000sfsdjflsdjg dsg
strip() rstrip() lstrip()
功能:strip()---去除字符串左右两侧的空白
rstrip()---去除字符串右侧的空白
lstrip()---去除字符串左侧的空白
>>>str1 = ' dsgdgs sdgsd '
>>>result = str1.strip()
>>>print(result)
>>>restlt1 = str1.rstrip()
>>>print(result1)
>>>result2 = str1.lstrip()
>>>print(result2)
dsgdgs sdgsd
sefs dsfd gs dg d gsdg dsgsdgsdg
dsgdgs sdgsd
replace()
功能:使用指定字符或字符串,替换原字符串中的字符或者字符串
参数:replace(old,new),old:被替换的字符串,new:替换字符串。
>>>str1 = 'abadaefghrjklmnopqistuvwxyz'
>>>result = str1.replace('a','1')
>>>print(result)
1b1d1efghrjklmnopqistuvwxyz
join()
功能:使用指定字符或者字符串,拼接由字符串组成的数组,返回字符串
>>>list1 = ['sdgsdg','sxdgd','lioncj']
>>>result = '**'.join(list1)
>>>print(result)
sdgsdg**sxdgd**lioncj
split()
功能:使用指定字符或字符串将原字符串切割
返回值:由切割后的字符串组成的列表。
>>>str1 = 'sligne234in kdghu98 ifdsighdsalgajdngdglkajdnghasdgahds'
>>>result = str1.split('s')
>>>print(result)
>>>str2 = 'sdlgaaingdksgoiaalonlknaaoonmgdoaaaoidngfs'
>>>result1 = str2.split('aa')
>>>print(result1)
['', 'ligne234in kdghu98 ifd', 'ighd', 'algajdngdglkajdngha', 'dgahd', '']
['sdlg', 'ingdksgoi', 'lonlkn', 'oonmgdo', 'aoidngfs']
splitlines([keepends])
功能:将字符串按照行分割
参数:keepends -- 在输出结果里是否去掉换行符('\r', '\r\n', \n'),默认为 False,不包含换行符,如果为 True,则保留换行符。
返回值:返回一个包含各行作为元素的列表
####对文件读取后处理数据很有用。
>>>str1 = 'skdjigaaiogjsna\noaooignaao\r\ngiriii\rladiiaaijngslkdnjaasdifnmd'
>>>sresult= str1.splitlines()
>>>sprint(result)
>>>sresult = str1.splitlines(True)
>>>sprint(result)
['skdjigaaiogjsna', 'oaooignaao', 'giriii', 'ladiiaaijngslkdnjaasdifnmd']
['skdjigaaiogjsna\n', 'oaooignaao\r\n', 'giriii\r', 'ladiiaaijngslkdnjaasdifnmd']
二、字符串判断函数
startswith()
功能:判断字符串是否由指定字符开头
>>>aa = 'abdcda'
>>>print(aa.startswith('a'))
True
endswith()
功能:判断字符串是否由指定字符结尾
str = 'sdhguidgnuh'
print(str.endswith('h'))
True
isupper() \ islower()
功能:判断字符串是否都是大写或者小写
>>>cc = 'ldigndssdf'
>>>print(cc.isupper())
>>>print(cc.islower())
>>>dd = 'IDUGFSK'
>>>print(dd.isupper())
>>>print(dd.islower())
False
True
True
False
isalnum()
功能:判断字符串是否都是由数字、字母或汉字构成
>>>str1 = 'sduidenhgfsidgiideg凯斯厄了848487942'
>>>print(str1.isalnum())
>>>str2 = '2943l..8yw984eyth'
>>>print(str2.isalnum())
True
False
isalpha()
功能:判断字符串是否全是由字母或汉字构成
>>>str1 = 'sdhugiksdinbgnsg8987.。--*&…………¥¥#'
>>>print(str1.isalpha())
>>>str2 = 'sieghjdhgisdh'
>>>print(str2.isalpha())
>>>str3 = 'isdnginside是'
>>>print(str3.isalpha())
False
True
True
isdigit() \ isnumeric()
功能:判断字符串是否都是由数字构成
>>>str1 = '284755'
>>>print(str1.isdigit())
>>>print(str1.isnumeric())
>>>str2 = 'iudg98766656565'
>>>print(str2.isdigit())
>>>print(str2.isnumeric())
True
True
False
False
isspace()
功能:判断字符串是否都是由空白字符构成,如空格,回车。
>>>aa = ' '
>>>print(aa.isspace())
True
istitle()
功能:如果字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回 True,否则返回 False.
>>>str1 = 'Ading SDGd Eindgf EG'
>>>print(str1.istitle())
>>>str1 = 'Ading Edinfg Dinfd'
>>>print(str1.istitle())
False
True
str.maketrans()
str也可以用''代替。
功能:制作映射表
参数:一个参数时,必须为字典格式;
两个参数时:第一个--要被替换的字符,第二个--替换字符;
三个参数时:第三个参数表示要删除的字符。
translate
功能:应用映射表
str.maketrans()只能用于单个字符的替换操作,优势是可以一次替换多个字符。(只能替换单个字符)
而replace()方法一次只能替换一种字符或字符串,优势是可以替换长字符串(长度大于2的)
>>>table = str.maketrans('abcdefg','1234567')
>>>str1 = 'seisnadksndadfisnfghgosndfgasiesdkfadewefr'
>>>result = str1.translate(table)
>>>print(result)
s5isn14ksn4146isn67h7osn4671si5s4k6145w56r #对应替换
>>>table = str.maketrans('abcdefg','1234567','as') #第三个参数是要删除的字符
>>>str1 = 'hhhseisnadksndadfisnfghhhhgosndfgasiesdkfadewefrjjhhj'
>>>result = str1.translate(table)
>>>print(result)
hhh5in4kn446in67hhhh7on467i54k645w56rjjhhj
>>>table1 = ''.maketrans({'a':'111','b':'222','c':'333'}) #字典格式时,key的长度必须为1.
>>>str1 = 'lisgaaaigslbbblingsccclsidn'
>>>result = str1.translate(table1)
>>>print(result)
lisg111111111igsl222222222lings333333333lsidn
string.whitespace
功能:包含所有ASCII中可当作空白的字符集合而成的字符串。这包括字符间的空间、 tab、 换行符、 return、 换页符和垂直制表符。
string.ascii_letteres
功能:获取ascii码中的所有字母表
>>> import string
>>> print(string.ascii_letters)
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
string.ascii_uppercase
功能:获取ascii码中的所有大写字母
>>> import string
>>> print(string.ascii_uppercase)
ABCDEFGHIJKLMNOPQRSTUVWXYZ
string.ascii_lowercase
功能:获取ascii码中的所有小写字母
>>> import string
>>> print(string.ascii_lowercase)
abcdefghijklmnopqrstuvwxyz
string.digits
功能:获取ascii码中所有10进制的数字字符
string.octdigits
功能:获取八进制所有数字字符
>>> import string
>>> print(string.octdigits)
01234567
string.hexdigits
功能:获取十六进制的所有数字字符
>>> import string
>>> print(string.hexdigits)
0123456789abcdefABCDEF
string.printable
功能:获取所有可见字符
>>> import string
>>> print(string.printable)
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
string.punctuation
功能:获取所有标点符号
>>> import string
>>> print(string.punctuation)
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~