一、字符串格式化使用字符串格式化操作符%实现,格式化操作符的右操作数可以是元组或者映射类型。如果右操作数是元组,其中每一个元素都会被单独格式化,而且每个值都需要一个对应的转换说明符。
基本的转换说明符包括:
(1) %字符:标记转换说明符的开始位置;
(2) 转换标志(可选):-表示左对齐,+表示在转换之前加上正负号,“”空格字符表示在正数之前保留空格,0表示转换值若位数不够则用0进行填充;
(3) 最小字段宽度(可选):转换后的字符串应该占的宽度,如果是*则宽度从元组值中读出;
(4) 点(.)后面跟精度值(可选):如果转换的右操作数是实数,精度表示小数点后面的位数,如果是字符串,则表示最大字段宽度,如果是*号,精度从元组中读出;
(5) 转换类型:字符串格式化转换类型。
1.1 简单格式化操作:
x= "Hello,%s"
y='Python'
print x%y
test="%d+%d"
data=(1,1)
print test%data
运算结果:
=========RESTART:C:\Users\Mr_Deng\Desktop\3.py=========
Hello,Python
1+1
>>>
1.2 指定字符串宽度和精度:
from math import pi
x='pi=%20f'
y=x%pi
print y
z='pi=%10.10f'
w=z%pi
print w
运算结果:
=========RESTART:C:\Users\Mr_Deng\Desktop\3.py=========
pi= 3.141593
pi=3.1415926536
>>>
1.3 符号、对齐、0填充
#_*_ coding:utf-8 _*_
from math import pi
print u'用0填充:'
print 'pi=%020.6f' % pi
print '\n'
print u'-左对齐:'
print 'pi=%-10.2f' % pi
print '\n'
print u'空白字符:正数前加上空格'
print ('% 5d' %20) + '\n' + ('% 5d' %-20)
print '\n'
print u'+号:显示正负号'
print ('%+5d' %20) + '\n' + ('%+5d' %-20)
运行结果:
=========RESTART:C:\Users\Mr_Deng\Desktop\3.py=========
用0填充:
pi=0000000000003.141593
-左对齐:
pi=3.14
空白字符:正数前加上空格
20
-20
+号:显示正负号
+20
-20
>>>
2 字符串方法:
2.1 find函数:查找子串,找到返回子串所在的最左端索引位置,否则返回-1
#_*_ coding:utf-8 _*_
x='C C++ Python PHP'
print x.find('Python')
print x.find('Java')
运行结果:
=========RESTART:C:\Users\Mr_Deng\Desktop\3.py=========
6
-1
>>>
find函数可以指定查找的区间范围
#_*_ coding:utf-8 _*_
x='C C++ Python PHP'
print u'只提供查找的起点'
print x.find('Python',8)
print u'提供起点和结束点'
print x.find('C++',2,5)
运行结果:
=========RESTART:C:\Users\Mr_Deng\Desktop\3.py=========
只提供查找的起点
-1
提供起点和结束点
2
>>>
2.2 join函数:在队列中添加元素
#_*_ coding:utf-8 _*_
dirs=('','usr','bin','env')
print dirs
print 'C:'+'\\'.join(dirs)
运算结果:
=========RESTART:C:\Users\Mr_Deng\Desktop\3.py=========
('', 'usr', 'bin', 'env')
C:\usr\bin\env
>>>
2.3 lower函数:返回字符串的小写字幕版
#_*_ coding:utf-8 _*_
name='Kenan'
ss=['xinyi','kenan','bob']
if name.lower() in ss : print 'found!'
运算结果:
=========RESTART:C:\Users\Mr_Deng\Desktop\3.py=========
found!
>>>
2.4 replace函数:返回所有匹配项被替换后的字符串
#_*_ coding:utf-8 _*_
test='This is an test case:test'
print test.replace('test','yes')
运算结果:
=========RESTART:C:\Users\Mr_Deng\Desktop\3.py=========
This is an yes case:yes
>>>
2.5 split函数:字符串分割成序列
#_*_ coding:utf-8 _*_
test='1+2+3+4+5'
print test.split('+')
运算结果:
=========RESTART:C:\Users\Mr_Deng\Desktop\3.py=========
['1', '2', '3', '4', '5']
>>>
2.6 strip函数:返回去除两侧(不包括内部)空格后的字符串,也可以指定去除的字符
#_*_ coding:utf-8 _*_
test=' 1+2+3+4+5 '
print u'原始序列:'+test
test=test.strip()
print u'去除空格:'+test
test=test.strip('5')
print u'去除\'5\':'+test
运算结果:
=========RESTART:C:\Users\Mr_Deng\Desktop\3.py=========
原始序列: 1+2+3+4+5
去除空格:1+2+3+4+5
去除'5':1+2+3+4+
>>>
2.7 translate函数:类似于replace函数,不同的是translate函数只处理单个字符,但是translate函数可以同时进行多个替换。在使用translate函数前,需要准备一张转换表,转换表表示以某字符替换某字符的对应关系。转换表可以使用string模块里的maketrans函数。‘
#_*_ coding:utf-8 _*_
from string import maketrans
table=maketrans('123','abc')
x='123456123'
print x.translate(table)
运算结果:
=========RESTART:C:\Users\Mr_Deng\Desktop\3.py=========
abc456abc
>>>