Python基础之String常用方法
- str():将其他类型的变量转换为str类型,例如:
name = 'Jack'
age = 22
course = ['web','Java','mysql','linux']
greads = [80,89,96,72]
print('使用str()函数前:')
print(type(name))
print(type(age))
print(type(course))
print(type(greads))
print('使用str()函数后:')
print(type(str(name)))
print(type(str(age)))
print(type(str(course)))
print(type(str(greads)))运行结果为:
使用str()函数前:
<class 'str'>
<class 'int'>
<class 'list'>
<class 'list'>
使用str()函数后:
<class 'str'>
<class 'str'>
<class 'str'>
<class 'str'> - capitalize:字符串的第一个字母大写,例如:
s='asdfg hjkl'
print(s.capitalize())运行结果为:
Asdfg hjkl
- casefold:大小写相互转换,例如:
s1 = 'asdfghjkl'
s2 = 'ZXCVBNM'
print(s1.swapcase())
print(s2.swapcase())运行结果为:
ASDFGHJKL
zxcvbnm - center:居中,自定义填充字符,例如:
s = 'COME ON'
print(s.center(20))#长度为20,以空格填充
print(s.center(20,'*'))#长度为20,以‘*’填充运行结果为:
COME ON
******COME ON******* - count:找子字符串个数,例如:
s = 'aghyghaya'
print(s.count('a'))#查找所有字符
print(s.count('a',3))#从第3个开始查找
print(s.count('a',3,9))#从第3个到第9-1个
print(s.count('gh',1,9))#查找‘gh’运行及如果为:
3
2
2
2 - encode/decode:编码/解码:
s1 = '你好,世界!'
s2 = s1.encode('UTF-8','strict')
print(s2)
print(s2.decode())运行结果为:
b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x8c\xe4\xb8\x96\xe7\x95\x8c\xef\xbc\x81'
你好,世界! - endswith:
s = 'asdfghjklpoiuytrewq'
print(s.endswith('ewq'))
print(s.endswith('jkl',0,9))
print(s.endswith('sdf'))运行结果为:
True
True
False - expandtabs:将\t替换为制定空格数,默认为8个,例如:
s = 'asd\tfgh\tjkl'
print(s.expandtabs())
print(s.expandtabs(2))运行结果:
asd fgh jkl
asd fgh jkl - find/rfind:寻找子字符串,返回索引,找不到返回-1,例如:
s = 'asdfghasdfcvgfdsa'
print(s.find('as'))
print(s.find('as',2))
print(s.find('as',2,5))
print(s.find('po')) print('r'.center(10,"*"))
print(s.rfind('as'))
print(s.rfind('as',2))
print(s.rfind('as',2,5))
print(s.rfind('po'))运行结果为:
0
6
-1
-1
****r*****
6
6
-1
-1 - format
s = '{0},{1} {2}'
print(s.format('Hello','my','friends.'))
s = '{2},{1} {2}'
print(s.format('Hello','my','friends.'))运行结果为:
Hello,my friends.
friends.,my friends. - index:寻找子字符串,返回索引,找不到报错,例如:
s = 'asdfghasdfcvgfdsa'
print(s.index('as'))
print(s.index('as',2))
print(s.index('as',2,5)) #报错
print(s.index('po')) #报错运行结果为:
0
Traceback (most recent call last):
6
File "E:/.../str-index.py", line 4, in <module>
print(s.index('as',2,5)) #报错
ValueError: substring not found - join:Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
s = 'Hello, world!'
print('-'.join(s,))
print('*'.join(s,))运行结果为:
H-e-l-l-o-,- -w-o-r-l-d-!
H*e*l*l*o*,* *w*o*r*l*d*! - ljust/rjust:Python rjust() 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。
s = 'asdfghjkl'
print(s.ljust(20,'*'))
print(s.rjust(20,'*'))运行结果为:
asdfghjkl***********
***********asdfghjkl - strip/lstrip/lstrip:用于截掉字符串左边或右边的空格或指定字符:
s1 = ' asdfghjkl '
s2 = '****asdfghjkl****'
print(s1.strip())
print(s2.strip('*'))
print(s2.rstrip('*'))
print(s2.lstrip('*'))运行结果为:
asdfghjkl
asdfghjkl
****asdfghjkl
asdfghjkl**** - lower转换小写:
s = 'ASDFghJKL'
print(s.lower())运行结果为:
asdfghjkl
- maketrans/translate:用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
s1 = "asdfghjkl"
s2 = ""
s = str.maketrans(s1,s2)
str = 'qawsedrftgyhujikolp'
print(str.translate(s))运行结果为:
q1w2e3r4t5y6u7i8o9p
- partition:方法用来根据指定的分隔符将字符串进行分割。
s = 'asdfghjkl'
print(s.partition('fgh'))运行结果:
('asd', 'fgh', 'jkl')
- replace:替换字符串:
s = 'asdfghjkl'
print(s.replace('df','@#$%^&*'))运行结果为:
as@#$%^&*ghjkl
- split/replit:用于移除字符串头尾指定的字符(默认为空格)。
s = 'asdfghjkl'
print(s.split('gh'))
print(s.rsplit('gh'))运行结果为:
['asdf', 'jkl']
['asdf', 'jkl'] - splitlines:分割行:
s = 'asdghjjki\nuytfghj\njjhfkdsj\nhfajhfjdskhfjdskhf'
print(s.splitlines())运行结果为:
['asdghjjki', 'uytfghj', 'jjhfkdsj', 'hfajhfjdskhfjdskhf']
- startswith:判断字符串是否以某个字符串开始:
str = 'asdfghjkl'
print(str.startswith('asd'))
print(str.startswith('dfg',2))
print(str.startswith('dfg',2,7))
print(str.startswith('fds'))运行结果为:
True
True
True
False - strip:去除首部 and/or 尾部的指定的字符,默认空格:
s1 = ' asdfghjkl '
s2 = '****asdfghjkl****'
print(s1.strip())
print(s2.strip('*'))
print(s2.rstrip('*'))
print(s2.lstrip('*'))运行结果为:
asdfghjkl
asdfghjkl
****asdfghjkl
asdfghjkl**** - swapcase:大小写互换:
s = 'asdfgHJKL'
print(s.swapcase())运行结果为:
ASDFGhjkl
- title:个单词首字母大写:
s = 'my love will go on'
print(s.title())运行结果为:
My Love Will Go On
- upper:转大写字母:
s = 'qwe rfg hbn jk'
print(s.upper())运行结果为:
QWE RFG HBN JK
- zfill:用0填充长度:
s = 'asdf'
print(s.zfill(8))运行结果为:
0000asdf
- isalnum:如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False。
- isalpha:如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False。
- isdecimal:isdecimal()方法检查字符串是否只包含十进制字符。这种方法只存在于unicode对象。
- isdigit:如果 string 只包含数字则返回 True 否则返回 False。
- isidentifier:如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False。
- isupper:如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False。
- islower:如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False。
- isnumeric:如果 string 中只包含数字字符,则返回 True,否则返回 False。
- isprintable:判断字符串的所有字符都是可打印字符或字符串为空。Unicode 字符集中 “Other” “Separator” 类别的字符为不可打印的字符(但不包括 ASCII 的空格(0x20))。
- isspace:如果 string 中只包含空格,则返回 True,否则返回 False。
- istitle:如果字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回 True,否则返回 False。