python之字符串篇

python自学之路

capitaliz() 首字母大写

1
2
3
>>> str = 'magicyou'
>>> print(str.capitalize())
Magicyou

count() 统计指定元素在字符串中出现次数

1
2
3
>>> str = 'my blog \'name is magicyou'
>>> print(str.count('m'))
3

center() 以指定的字符占位,返回制定长度的字符串,原字符串居中

1
2
3
>>> str = 'my blog \'name is magicyou'
>>> print(str.center(50,'-'))
------------my blog 'name is magicyou-------------

endswith() 判断是否以某个字符串结尾,返回布尔值

1
2
3
4
5
>>> str = 'my blog \'name is magicyou'
>>> print(str.endswith('you'))
True
>>> print(str.endswith('me'))
False

expandtabs() 将字符串中的tab替换成指定长度的空格

1
2
3
4
>>> str = 'magic\tyou'
>>> print(str.expandtabs(tabsize=30))
magic you
>>>

find() 查找某字符在已知字符串中的位置

1
2
3
>>> str = 'my blog \'name is magicyou'
>>> print(str.find('name'))
9

format() 字符串格式化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 1、使用位置参数
>>> str = 'my name is {},age {}'
>>> print(str.format('magicYou',23))
my name is magicYou,age 23
# 2、使用关键字参数
>>> str = 'my name is {name},age {age}'
>>> print(str.format(name='magicYou',age=23))
my name is magicYou,age 23
# 3、填充与格式化
:[填充字符][对齐方式 <^>][宽度]
>>> '{0:*>10}'.format('abc')
'*******abc'
>>> '{0:*<10}'.format('abc')
'abc*******'
>>> '{0:*^10}'.format('abc')
'***abc****'
# 4、精度与进制
>>> '{0:.2f}'.format(0.66666)
'0.67'
>>> '{0:b}'.format(10)
'1010'
>>> '{0:o}'.format(10)
'12'
>>> '{0:x}'.format(10)
'a'
>>> '{:,}'.format(123456789)
'123,456,789'
# 5、使用索引
>>> info = ['magicYou',23]
>>> 'name is {0[0]} age is {0[1]}'.format(info)
'name is magicYou age is 23'

format_map() 格式化字符串

1
2
3
4
>>> hash = {'name':'magicYou','age':23}
>>> str = 'i am {name}, i am {age}'
>>> print(str.format_map(hash))
i am magicYou, i am 23

isalnum() 检测字符串是否由字母或数字组成

1
2
3
4
5
6
7
8
9
>>> str = 'magicYou'
>>> print(str.isalnum())
True
>>> str = '56ppp'
>>> print(str.isalnum())
True
>>> str = '*&^'
>>> print(str.isalnum())
False

isalpha() 检测字符串是否只有字母

1
2
3
4
5
6
>>> str = 'magicYou'
>>> print(str.isalpha())
True
>>> str = 'magicYou4'
>>> print(str.isalpha())
False

isdecimal() 检查字符串是否只包含十进制字符。这种方法只存在于unicode对象
注意:定义一个十进制字符串,只需要在字符串前添加 ‘u’ 前缀即可

1
2
3
4
5
6
>>> str = u'123456'
>>> print(str.isdecimal())
True
>>> str = u'123456qq'
>>> print(str.isdecimal())
False

isdigit() 检测字符串是否只由数字组成。

1
2
3
4
5
6
>>> str = '123456'
>>> print(str.isdigit())
True
>>> str = '123456qq'
>>> print(str.isdigit())
False

isidentifier() 检测是否是一个合法的标识符
注意:合法的标识符就是符合变量名的就是合法标识符(只能以字母或下划线开头)

1
2
3
4
5
6
7
8
9
>>> str = '123456'
>>> print(str.isidentifier())
False
>>> str = 'name123'
>>> print(str.isidentifier())
True
>>> str = '_123456'
>>> print(str.isidentifier())
True

isnumeric() 检测是否为全为数字(小数也不算)

1
2
3
4
5
6
>>> str = '123456'
>>> print(str.isnumeric())
True
>>> str = '1234.56'
>>> print(str.isnumeric())
False

isspace() 检测是否只有空格组成

1
2
3
4
5
6
>>> str = '123   456'
>>> print(str.isspace())
False
>>> str = ' '
>>> print(str.isspace())
True

istitle() 检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写

1
2
3
4
5
6
7
8
9
>>> str = 'My Name Is MagicYou'
>>> print(str.istitle())
False
>>> str = 'My Name Is Magicyou'
>>> print(str.istitle())
True
>>> str = 'My name is magicYou'
>>> print(str.istitle())
False

isupper() 检测是否全市大写字母

1
2
3
4
5
6
>>> str = 'MAGICYOU'
>>> print(str.isupper())
True
>>> str = 'MagicYou'
>>> print(str.isupper())
False

join() 将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串

1
2
3
4
5
6
>>> print('-'.join(['m','a','g','i','c']))
m-a-g-i-c
>>> print('-'.join(('m','a','g','i','c')))
m-a-g-i-c
>>> print('-'.join('magic'))
m-a-g-i-c

ljust() 返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串
rjust() 返回一个原字符串右对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串

1
2
3
4
5
>>> str = 'magic'
>>> print(str.ljust(50,'*'))
magic*********************************************
>>> print(str.rjust(50,'*'))
*********************************************magic

lower() 转换字符串中所有大写字符为小写

1
2
3
>>> str = 'MAGICYOU'
>>> print(str.lower())
magicyou

upper() 转换字符串中所有小写字符为大写

1
2
3
>>> str = 'magic'
>>> print(str.upper())
MAGIC

lstrip() 截掉字符串左边的空格或指定字符。

1
2
3
4
5
6
>>> str = '   magic'
>>> print(str.lstrip())
magic
>>> str = 'PPmagic'
>>> print(str.lstrip('PP'))
magic

strip() 移除字符串头尾指定的字符(默认为空格)

1
2
3
4
5
6
>>> str = '   magic     '
>>> print(str.strip())
magic
>>> str = 'PPmagicPP'
>>> print(str.strip('PP'))
magic

maketrans(str1,str2) 创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标

1
2
3
>>> p = str.maketrans('ace','135')
>>> print('abcdefghi'.translate(p))
1b3d5fghi

replace(str1, str2, [max]) 替换字符串中的str1为str2,最多不超过max次

1
2
3
4
5
>>> str = 'i am magicYou'
>>> print(str.replace('m', 'M'))
i aM MagicYou
>>> print(str.replace('m', 'M', 1))
i aM magicYou

find(str, start, end) 检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1

1
2
3
4
5
6
7
>>> str = 'i am magicYou'
>>> str.find('m')
3
>>> str.find('m', 3)
3
>>> str.find('m', 8, 10)
-1

rfind() 返回字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1

1
2
3
4
5
6
7
8
9
>>> str = 'i am magicYou'
>>> str.rfind('m')
5
>>> str.rfind('m', 6, 8)
-1
>>> str.rfind('m', 5)
5
>>> str.rfind('m', 4)
5

split(str, [num]) 通过指定分隔符对字符串进行切片,返回列表,如果参数num 有指定值,则仅分隔 num 个子字符串

1
2
3
4
5
6
7
>>> str = 'i am magicYou'
>>> str.split(' ')
['i', 'am', 'magicYou']
>>> str.split(' ', 2)
['i', 'am', 'magicYou']
>>> str.split(' ', 1)
['i', 'am magicYou']

splitlines() 根据换行符(‘\r’, ‘\r\n’, \n’)分割成列表

1
2
>>> print('1+2\n3+5'.splitlines())
['1+2', '3+5']

swapcase() 将字符串中的大写换小写,小写换大写

1
2
3
>>> str = 'i am magicYou'
>>> str.swapcase()
'I AM MAGICyOU'

title() 将字符串中的每个单词的首字母转换为大写

1
2
3
>>> str = 'i am magicYou'
>>> str.title()
'I Am Magicyou'

zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0

1
2
>>> str.zfill(50)
'000000000000000000000000000000000000000000magicYou'

此外,字符串也可以切片(和列表类似)

1
2
3
4
5
6
7
>>> str = 'magicYou'
>>> print(str[2:])
gicYou
>>> print(str[2:3])
g
>>> print(str[:6])
magicY