http://blog.csdn.net/ly21st http://ly21st.blog.chinaunix.net
分类: Python/Ruby
2011-09-29 14:19:37
>>> format="hello,%s.%s enough for ya?"
>>> values=('world','hot')
>>> print format % values
hello,world.hot enough for ya?
>>> format='hello %.4f'
>>> from math import pi
>>> print format % pi
hello 3.1416
模板字符串
substitute这个模板方法会用传递进来的关键字参数foo替换字符串中的$foo
>>> from string import Template
>>> s=Template('$x,glorious $x!')
>>> s.substitute(x='slurm')
'slurm,glorious slurm!'
如果替换字段是单词的一部分,那么参数名就能必须用括号括起来,从而准确指明结尾:
>>> j=Template('${x}hllo')
>>> j.substitute(x=liyuan)
>>> j.substitute(x='liyuan')
'liyuanhllo'
可以使用$$插入美元符号
除了关键字参数外,还可以使用字典变量提供值/名称对
>>> s=Template('A $thing must never $action.')
>>> d={}
>>> d['thing']='gentleman'
>>> d['action']='show his socks'
>>> s.substitute(d)
'A gentleman must never show his socks.'
格式化操作的右操可以是任何东西,如果是元组或者映射类型(如字典),那么字符串格式化将会有所不同。
如果右操作数是元组的话,则其中的每一个元素都会被单独格式化,每个值都需要一个对应的转换说明符。
>>> '%s plus %s equals %s' % (1,1,2)
'1 plus 1 equals 2'
代码清单3-1 字符串格式化实例
# Print a formatted price list with a given width
width = input('Please enter width: ')
price_width = 10
item_width = width - price_width
header_format = '%-*s%*s'
format = '%-*s%*.2f'
print '=' * width
print header_format % (item_width, 'Item', price_width, 'Price')
print '-' * width
print format % (item_width, 'Apples', price_width, 0.4)
print format % (item_width, 'Pears', price_width, 0.5)
print format % (item_width, 'Cantaloupes', price_width, 1.92)
print format % (item_width, 'Dried Apricots (16 oz.)', price_width, 8)
print format % (item_width, 'Prunes (4 lbs.)', price_width, 12)
print '=' * width
>>> 'With a moo-moo here,and a moo-moo there'.find('moo')
7
>>> title="Monty Python's Flying Circus"
>>> title.find('Monty')
0
>>> title.find('Pyton')
-1
>>> title.find('Python')
6
>>> subject='$$$ get rich now!!!'
>>> subject.find('$$$')
0
>>> subject.find('$$$',1)
-1
>>> subject.find('now',1)
13
>>> subject.find('now',1,16)
13
join方法
>>> seq=['1','2','3','4','5']
>>> '+'.join(seq)
'1+2+3+4+5'
>>> dirs='','usr','bin','env'
>>> '/'.join(dirs)
'/usr/bin/env'
>>> print 'C:'+'\\'.join(dirs)
C:\usr\bin\env
>>> print '/'.join(dirs)
/usr/bin/env
lower方法:返回字符串的小写字母版
>>> 'Hello,World!My name is Liyu'.lower()
'hello,world!my name is liyu'
replace:查找并替换
>>> 'This is a test'.replace('is','eez')
'Theez eez a test'
split方法:join的逆方法,用来将字符串分割成序列
>>> '1+2+3+4+5'.split('+')
['1', '2', '3', '4', '5']
>>> '/usr/bin/env'.split('/')
['', 'usr', 'bin', 'env']
>>> 'Using the default'.split()
['Using', 'the', 'default']
注意,如果不提供任何分隔符,程序会把所有空格作为分隔符(空格、制表、换行等)。
strip方法:返回去除两侧(不包括内部)空格的字符串;
>>> ' internal myname is liyu! '.strip()
'internal myname is liyu!'
也可以指定需要去除的字符,将它们列为参数即可。
>>> '*** spam for * everyone!!!***'.strip('!*')
' spam for * everyone'