字符串格式化:
格式化字符串%希望格式化的值
其中%称为 字符串格式化操作符
格式化字符串中使用 转换说明符 来标记需要插入转换值的位置
转换说明符(常用):
%s 表示值会格式化为字符串(不是字符串的话也会被str将其
转换为字符串)
%f 转换成浮点数 如果要求精度的话:%.xf
%i 转换成整数 %d意思一样
字段宽度值(可选) %10f % pi #字段宽度为10
%10.5f % pi #字段宽度为10,精度为5的浮点数
转换标志(可选):-表示左对齐,+表示在转换值之前要加上正负号," "空白
字符表示在正数之前保留空格,0表示若转换值位数不够则用
0填充。
元组在字符串格式化中的应用:
1)可以使用元组一次格式化多个数值:
>>> '%i plus %i equals %i ' % (3,4,7)
'3 plus 4 equals 7 '
>>> format='I favorite NBA player is: %s and %s !'
>>> names=('kobe','james')
>>> print format % names
I favorite NBA player is: kobe and james !
如果使用列表则会被视为一个值。在此示例中就会报错:
>>> names=['james','kobe']
>>> print format % names
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: not enough arguments for format string
2)宽度值和精度值如果使用*表示,则其值会从元组中读出:
>>> '%.*s' % (5, 'Guido van Rossum') #精度值为5
'Guido'
>>> '%*.*f' % (10,3,3.1415926) #宽度为10,精度为3
' 3.142'
常用字符串方法:
1)str.find('sub_str') 查找子字符串,返回子串所在位置的最左端索引,若没有
找到则返回-1。作用有些与in操作符雷同,但find方法可以指定范围。
PS: 起始和终止值(第二和第三个参数)包含第一个索引位置但不包含第二站索
引,这在Python中是惯例。
2)str.lower() 返回字符串的小写字母版。
3)str.replace('sub_str', 'replace_str') 返回某字符串中的所有匹配项均被替换之
后得到的字符串。
4)str.split('delimiter') 根据分隔符将字符串分割成列表。特点:1.必须要有分隔符号(即使是空格也木有问题);2.如果在字符串中没有找到指定的分隔符则会将整个字符串作为一个元素列入数组中。
>>> 'I like kobe'.split('')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: empty separator
>>> 'I like kobe'.split('#')
['I like kobe']
5)'connective_sign'.join(sequence) 将序列使用指定的连接符组成字符串。
>>> '+'.join(('1','2','3','4'))
'1+2+3+4'
>>> '+'.join(['1','2','3','4'])
'1+2+3+4'
6)str.strip() 返回去处两侧(不包括内部)空格的字符串;也可以指定需要去处的字符:str.strip('remove_char')
>>> '**sam is a luck boy!!!'.strip('*!')
'sam is a luck boy'
7)str.translate(table) 同replace一样,可以替换字符串中的某些部分;但是
translate方法只处理单个字符串。但它的优势在于可以同时进行多个替换。
在使用translate进行转换之前,需要先完成一张转换表。
转换表中是以某字符替换某字符的对应关系,使用string模块里面的
maketrans函数进行。
maketrans函数接收两个等长字符串作为参数,表示第一个字符串中的每个字
符都用第二个字符串中相同位置的字符替换。
>>> import string
>>> table=string.maketrans('cs', 'kz')
>>> 'this is a clock'.translate(table)
'thiz iz a klokk'
translate的第二个参数是可选的,用来指定需要删除的字符
>>> 'this is a clock'.translate(table,' ') #删除所有的空格
'thizizaklokk'
PS:使用此方法可以解决非英语字符串的问题。
格式化字符串%希望格式化的值
其中%称为 字符串格式化操作符
格式化字符串中使用 转换说明符 来标记需要插入转换值的位置
转换说明符(常用):
%s 表示值会格式化为字符串(不是字符串的话也会被str将其
转换为字符串)
%f 转换成浮点数 如果要求精度的话:%.xf
%i 转换成整数 %d意思一样
字段宽度值(可选) %10f % pi #字段宽度为10
%10.5f % pi #字段宽度为10,精度为5的浮点数
转换标志(可选):-表示左对齐,+表示在转换值之前要加上正负号," "空白
字符表示在正数之前保留空格,0表示若转换值位数不够则用
0填充。
元组在字符串格式化中的应用:
1)可以使用元组一次格式化多个数值:
>>> '%i plus %i equals %i ' % (3,4,7)
'3 plus 4 equals 7 '
>>> format='I favorite NBA player is: %s and %s !'
>>> names=('kobe','james')
>>> print format % names
I favorite NBA player is: kobe and james !
如果使用列表则会被视为一个值。在此示例中就会报错:
>>> names=['james','kobe']
>>> print format % names
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: not enough arguments for format string
2)宽度值和精度值如果使用*表示,则其值会从元组中读出:
>>> '%.*s' % (5, 'Guido van Rossum') #精度值为5
'Guido'
>>> '%*.*f' % (10,3,3.1415926) #宽度为10,精度为3
' 3.142'
常用字符串方法:
1)str.find('sub_str') 查找子字符串,返回子串所在位置的最左端索引,若没有
找到则返回-1。作用有些与in操作符雷同,但find方法可以指定范围。
PS: 起始和终止值(第二和第三个参数)包含第一个索引位置但不包含第二站索
引,这在Python中是惯例。
2)str.lower() 返回字符串的小写字母版。
3)str.replace('sub_str', 'replace_str') 返回某字符串中的所有匹配项均被替换之
后得到的字符串。
4)str.split('delimiter') 根据分隔符将字符串分割成列表。特点:1.必须要有分隔符号(即使是空格也木有问题);2.如果在字符串中没有找到指定的分隔符则会将整个字符串作为一个元素列入数组中。
>>> 'I like kobe'.split('')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: empty separator
>>> 'I like kobe'.split('#')
['I like kobe']
5)'connective_sign'.join(sequence) 将序列使用指定的连接符组成字符串。
>>> '+'.join(('1','2','3','4'))
'1+2+3+4'
>>> '+'.join(['1','2','3','4'])
'1+2+3+4'
6)str.strip() 返回去处两侧(不包括内部)空格的字符串;也可以指定需要去处的字符:str.strip('remove_char')
>>> '**sam is a luck boy!!!'.strip('*!')
'sam is a luck boy'
7)str.translate(table) 同replace一样,可以替换字符串中的某些部分;但是
translate方法只处理单个字符串。但它的优势在于可以同时进行多个替换。
在使用translate进行转换之前,需要先完成一张转换表。
转换表中是以某字符替换某字符的对应关系,使用string模块里面的
maketrans函数进行。
maketrans函数接收两个等长字符串作为参数,表示第一个字符串中的每个字
符都用第二个字符串中相同位置的字符替换。
>>> import string
>>> table=string.maketrans('cs', 'kz')
>>> 'this is a clock'.translate(table)
'thiz iz a klokk'
translate的第二个参数是可选的,用来指定需要删除的字符
>>> 'this is a clock'.translate(table,' ') #删除所有的空格
'thizizaklokk'
PS:使用此方法可以解决非英语字符串的问题。