本文主要介绍如何使用字符串格式化其他的值(如打印特殊格式的字符串),并简单了解一下利用字符串的分割、连接、搜索等方法。
基本字符操作
所有标准的序列操作(索引、分片、乘法、判断成员资格、求长度、取最小值和最大值)对字符串同样适用。但是,字符串都是不可变的。
字符串格式化
- 字符串格式化使用字符串格式化操作符即百分号%来实现。
基本的转换说明符包括以下部分:
- (1)%字符:标记转换说明符的开始。
- (2)转换状态(可选):-表示左对齐,+表示在转换值之前要加上正负号;“”(空白字符)表示正数之前保留空格;0表示转换值若位数不够则用0填充。
- (3)最小字段宽度(可选):转换后的字符串至少应该具有该值制定的宽度。如果是*,则宽度会从值元组中读出。
- (4)点(.)后跟精度值(可选):如果转换的是实数,精度值就表示出现在小数点后的位数。
- (5)转换类型。
字符串格式化:求模操作符(%)可以用来将其他值转换为包含转换标志的字符串,例如%s。它还能用来对值进行不同方式的格式化,包括左右对齐、设定字段宽度以及精度值,增加符号(正负号)或者左填充0等。
>>> format = "hello,%s"
>>> values = ('wrold')
>>> print format % values
hello,world
如果使用列表或者序列代替元祖,那么序列会被解释为一个值,只有元祖和字典可以格式化一个以上的值。
1.简单转换
简单的转换只需要写出转换类型,使用起来很简单:
>>>'pirce of eggs: $%d' %42
'price of eggs: $42'
2.字段宽度和精度
转换说明符可以使用字段宽度和精度。字段宽度是转换后的值所保留的最小字符个数,精度则是结果中应该包含的小数位数、
# 字段宽 10
>>> '%10f' %pi
' 3.141593'
# 字段宽 10 ,精度2
>>> '%10.2f' %pi
' 3.14'
3.符号、对齐和用0填充
在字段宽度和精度之前还可以放置一个‘标志’,该标志可以是零、加号、减号或空格。
# 用0填充
>>>'%010.2f' %pi
'0000003.14'
# 左对齐
# (-)负号用来左对齐数值。
>>>'%-10.2f' %pi
'3.14 '
# (+)表示不管是正数还是负数都标示出符号。
'%+10.2f' %pi
' +3.14'
4.字符串方法
字符串的方法有很多种,具体可以参考附录。在这里主要介绍几个比较常用的。
1.find
find方法用于在一个较长的字符串中查找子串,它返回子串所在位置的最左端索引,如果没有找到则返回-1(查找子串)
>>>'pracetice makes perfect'.find('makes')
10
2.join
join方法是非常重要的字符串方法,它是split方法的逆方法,用来连接序列中的元素,注需要被连接的序列元素都必须是字符串(列表->字符串)
>>> seq=['1','2','3','4','5']
>>>seq=['1','2','3','4','5']
>>>sep.join(seq)
'1+2+3+4+5'
3.lower
lower方法返回字符串的小写字母版(大写转小写)
>>>'Good Good Study!'.lower()
good good study!
4.replace
replace方法返回某字符串的所有匹配项均被替换之后得到字符串(替换)
>>> 'This is a test'.replace('test','TEST')
'This is a TEST'
5.split
split将字符串分割为序列(字符串->字典)
'1+2+3+4+5'.split('+')
['1', '2', '3', '4', '5']
6.strip
strip方法返回去除两侧空格的字符串(去除空格)。
>>> ' Good Good Study '.strip()
'Good Good Study'
7.translate
translate方法和replace方法一样,可以替换字符串中的某些部分,translate方法只处理单个字符。可以借助maketrans函数接受两个参数:两个等长的字符串,表示第一个字符串中的每个字符都用第二个字符串中相同位置的字符替换。(替换)
>>>from string import maketrans
>>>table = maketrans('cs','kz')
>>>print len(table)
>>>print table [97:123]
256
abkdefghijklmnopqrztuvwxyz
列表、字符串和字典是Python中最重要的3中数据结构。