python学习笔记08:字符串的常用操作
capitalize():使字符串的首字母大写
name = "my name is alex"
print(name.capitalize())
打印结果:
My name is alex
count():字符串中,将字符串中包含的某子字符串的数量统计出来
name = "my name is alex"
print(name.count("a"))
打印结果:
2
center():字符串中,一共有x个字符,字符串位于中间,其他位置以-补齐
name = "my name is alex"
print(name.center(50,"-"))
打印结果:
-----------------my name is alex-----------------
zfill():字符串中,一共有x个字符,字符串不够就从字符串最左继续向左,用0补齐
print('Alex Li'.zfill(50))
打印结果:
0000000000000000000000000000000000000000000Alex Li
ljust():返回一定长度的左对齐字符串,长度不够,填充字符,默认填充空格,也可自定义。
print(name.ljust(50,'*'))
打印结果:
my name is alex***********************************
rjust():返回一定长度的右对齐字符串,长度不够,填充字符,默认填充空格,也可自定义。
print(name.rjust(50,'*'))
打印结果:
***********************************my name is alex
endswith():判断该字符串是否是以ex结尾,返回值为true或false
name = "my name is alex"
print(name.endswith("ex"))
打印结果:
True
find():找到字符串中子字符串的位置
# 例一:
info = 'abca123a'
print(info.find('a')) # 从下标0开始,找子字符串第一次出现的位置
print(info.find('a',1)) # 从下标1开始,找子字符串第一次出现的位置
print(info.find('4')) # 不存在的子字符串,运行后返回-1
打印结果:
0
3
-1
# 例二:
name = "my name is alex"
print(name.find("name"))
print(name[name.find("name"):]) #字符串也可以切片,从找到的name的位置开始,显示name及其后面的内容
打印结果:
4
name is alex
format():可以格式化
name = "my name is {name} and I am {year} old"
print(name.format(name = "alex",year = "23"))
打印结果:
my name is alex and I am 23 old
format_map():多用于字典
name = "my name is {name} and I am {year} old"
print(name.format_map( {"name":"alex","year":18} ))
打印结果:
my name is alex and I am 18 old
isalnum():判断的是,字符串是否是英文字符或数字1-9
name = "my name is alex"
print(name.isalnum()) # 其中包含非英文和数字的空格,所以返回False
print('am32\f'.isalnum()) # 其中包含非英文和数字的\f,所以返回False
print('ab123'.isalnum())
打印结果:
False
False
True
isalpha():判断的是,字符串是否是纯英文字符
name = "my name is alex"
print(name.isalpha()) # 其中包含非英文的空格,所以返回False
print('adJ'.isalpha())
打印结果:
False
True
isdigit():判断的是,字符串是否是数字形式
name = "my name is alex"
print(name.isdigit())
print('887'.isdigit()) #“887”实际上是个字符串,但isdigit()识别其表现形式为数字
print('889.9'.isdigit())
打印结果:
False
True
False
isdecimal():判断的是,字符串是否是十进制
print('1A'.isdecimal()) # A是16进制表达
print('1222'.isdecimal())
打印结果:
False
True
islower():判断的是,字符串是否是小写
print('dds'.islower())
print('dDs'.islower())
打印结果:
True
False
isspace():判断的是,字符串是否是空格
print('33 a'.isspace())
print(' '.isspace())
打印结果:
False
True
istitle():判断的是,字符串是否为标题格式:每个单词首字母大写
print('my name is '.istitle())
print('My Name Is '.istitle())
print('我有一个梦想'.istitle())
打印结果:
False
True
False
isupper():判断字符串是否是大写
print('my name is '.isupper())
print('My Name Is '.isupper())
print('KKIS'.isupper())
打印结果:
False
False
True
lower():把字符串中大写变小写
print('Alex'.lower())
打印结果:
alex
upper():把字符串中小写变大写
print('Alex'.upper())
打印结果:
ALEX
isidentifier():判断的是,字符串是否是合法的标识符(变量名)----没什么用
name = "my name is alex"
print(name.isidentifier())
print('1222'.isidentifier())
print('age'.isidentifier())
打印结果:
False
False
True
isnumeric():判断的是,字符串是否是数字----没什么用
print('dsk 2A'.isnumeric())
print('33.33'.isnumeric())
print('33'.isnumeric())
打印结果:
False
False
True
expandtabs():字符串中加\t,配合tabsize代表将该位置转换成多少个空格----了解就行了,其实没什么用
name = "my \tname is alex"
print(name.expandtabs(tabsize=30))
打印结果:
my name is alex
swapcase():返回一个字符串的副本,其中大写字符转换为小写,反之亦然。
print('Alex Li'.swapcase())
打印结果:
aLEX lI
strip():去掉两头的空格后回车
print(' \nAlex'.strip())
打印结果:
Alex
lstrip():去掉左边的空格后回车
print('Alex'.lstrip())
print('\nAlex'.lstrip()) #\n代表换行
打印结果:
Alex
Alex
rstrip():去掉右边的空格后回车
print('%%%%')
print('\nAlex'.rstrip())
print('%%%%')
打印结果:
%%%%
Alex
%%%%
translate():通过给定的翻译表,返回映射了每个字符的字符串的副本
p = str.maketrans('abcdef','123456') # maketrans()把字符串转成对应的值
print('alex li'.translate(p))
打印结果:
1l5x li
replace():子字符串旧变新。如果可选参数计数为给定时,只替换第一个计数。
print(‘alex li’.replace(‘l’,‘L’)) #把l替换成大写L
print(‘alex li’.replace(‘l’,‘L’,1)) #把l替换成大写L,只替换一个
print(‘alex li’.replace(‘l’,‘L’,2)) #把l替换成大写L,替换两个
打印结果:
aLex Li
aLex li
aLex Li
rfind():找到字符串最后一位从0开始向前数,返回所查找的子字符串的最高索引
print('alex xix'.rfind('x'))
打印结果:
7
split():将字符串按照某指定元素分成一个列表
print('al ex lil'.split(' '))#将字符串按照空格分成一个列表
print('al ex lil'.split('l'))#将字符串按照l分成一个列表,最后一个l因为l被当成分隔符了,所以l没了
print('1+2+3+4+5'.split('+'))
打印结果:
[‘al’, ‘ex’, ‘lil’]
[‘a’, ’ ex ', ‘i’, ‘’]
[‘1’, ‘2’, ‘3’, ‘4’, ‘5’]
splitlines():按字符串中的换行,分割成一个列表的各元素
print('1+2\n+3+4+5'.splitlines())
打印结果:
[‘1+2’, ‘+3+4+5’]
startswith():如果字符串以指定的前缀开头,则返回True,否则返回False
print('1+2\n+3+4+5'.startswith("n"))
print('my name is alex'.startswith('m'))
打印结果:
False
True