Python字符串格式化表达

字符串格式化允许在一个单一的步骤中对一个字符串执行多个特定类型的替换。

格式化字符串:

1. 在%操作符的左侧放置一个需要进行格式化的字符串,这个字符串带有一个或多个嵌入的转换目标,都是以%开头(例如,%d).

2. 在%操作符右侧放置一个(或多个,嵌入到元组中)对象,这些对象将会插入到左侧想让Python进行格式化字符串的一个(或多个)转换目标的位置上去。

#!/user/bin/env python
# coding=utf-8

print 'That is %d %s bird!' % (1,'dead')

exclamation="Ni"
print "THe knights who say %s!" % exclamation

print "%d %s %d you" % (1,'spam',4)

print "%s--%s--%s" % (42, 3.14159, [1,2,3])


注意,当不止一个值待插入的时候,应该在右侧用括号把它们括起来(也就是说,把它们放到元组中去)。%格式化表达式操作符在其右边期待一个单独的项或者一个或多个项的元组。

格式化总是会返回新的字符串作为结果而不是对左侧的字符串进行修改。由于字符串是不可变的,所以只能这样操作。

%[(name)][flags][width][.precision]typecode

#!/user/bin/env python
# coding=utf-8

x=1.23456789
print '%-6.2f | %05.2f | %+06.1f' % (x,x,x)


基于字典的字符串格式化

字符串的格式化同时也允许左边的转换目标来引用右边字典中的键来提取对应的值。

#!/user/bin/env python
# coding=utf-8

print "%(n)d %(x)s" % {"n":1,"x":"spam"}

reply="""
Greetings...
Hello %(name)s!
Your age squared is %(age)s
"""
values={'name':'Bob','age':40}
print(reply % values)


字符串格式化方法调用

在主体字符串中,花括号通过位置(例如{1})或关键字(例如,{food})指出替换目标及将要插入的参数。

#!/user/bin/env python
# coding=utf-8

template='{0},{1} and {2}'
print template.format('spam','ham','eggs')

template='{motto},{pork} and {food}'
print template.format(motto='spam', pork='ham', food='eggs')

template='{motto},{0},and {food}'
print template.format('ham',motto='spam',food='eggs')

添加键、属性和偏移量

方括号指定字典键,而点表示位置或关键字所引用的一项的对象属性。

#!/user/bin/env python
# coding=utf-8

import sys

print 'My {1[spam]} runs {0.platform}'.format(sys, {'spam': 'laptop'})
print 'My {config[spam]} runs {sys.platform}'.format(sys=sys,config={'spam': 'laptop'})













  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值