Chinaunix首页 | 论坛 | 博客
  • 博客访问: 334288
  • 博文数量: 214
  • 博客积分: 4258
  • 博客等级: 上校
  • 技术积分: 2021
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-02 09:16
个人简介

http://blog.csdn.net/ly21st http://ly21st.blog.chinaunix.net

文章分类

全部博文(214)

文章存档

2018年(16)

2015年(1)

2014年(2)

2012年(22)

2011年(173)

分类: Python/Ruby

2011-09-29 14:19:37

3.1 格式化字符串

>>> 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'

 

阅读(350) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~