您的位置:首页 > 编程语言 > Python开发

Python——字符串格式化与字符串操作

2016-10-03 19:25 351 查看
一、字符串格式化使用字符串格式化操作符%实现,格式化操作符的右操作数可以是元组或者映射类型。如果右操作数是元组,其中每一个元素都会被单独格式化,而且每个值都需要一个对应的转换说明符。

基本的转换说明符包括:

(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
>>>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息