1.字符串格式化%(需要分别不同类型)
使用一个字符串作为模板,模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式。格式符有:整数(%d)、字符串(%s)、浮点数(%f)。
1.1、匿名tuple(推荐在参数少时用)
python用一个tuple将多个值传递给模板,每个值对应一个格式符。
print "I'm %s.I'm %d year old" % ('Vamei',99)
#引号内的为模板 连接模板和tuple的"%"为格式化操作符
#或者将整个字符串表达式赋值给a,再输出a.
a="I'm %s.I'm %d year old" % ('Vamei',99)
print a
1.2、命名dict,字典的key可以重用
在每个转换说明符中的%字符后面,可以加上(用园括号括起来的)键,后面在跟上其他说明元素。
print "I'm %(name)s.I'm %(age)d year old.almost %(age)d" % {'name':'Vamei','age':99}
#输出为 I'm Vamei.I'm 99 year old.almost 99
phonebook = {'Alice':123, 'hello':456, 'sky':789}
print "Alice's phone number is %(Alice)s" % phonebook
#输出为 "Alice's phone number is 123"
2.字符串格式化(format)(不需要指定字符串还是数字类型)
自python2.6开始,新增了一种格式化字符串的函数str.format(),通过{ }和 . 来代替传统%
2.1位置参数
print 'my name is {},age is {}'.format('hoho',18)
print 'my name is {1},age is {0}'.format(18,'hoho')
li=['hoho',18]
print 'my name is {1},age is {0}'.format(*li)
2.2使用关键字参数
hash={'name':'hoho','age':18}
print 'my name is {name},age is {age}'.format(**hash)
print 'my name is {name},age is {age}'.format(name='hoho',age=18)
2.3精度和进制
{0:b} 二进制
{0:o} 八进制
{0:x} 十六进制
{0:.2f} 保留三位小数点