自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足。那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?
语法
它通过{}和:来代替%。
“映射”示例
有4种方式来实现值的映射
第一种:使用位置
>>> print('{0},{1}'.format('abc',2333) );
abc,2333
>>>
>>> a='aaa'
>>> b='bbb'
>>> print('a={0},b={1}'.format(a,b)); #使用变量
a=aaa,b=bbb
第二种:使用关键字
>>> print('{name},{age}'.format(age=18,name='zhangsan'));#使用常量
zhangsan,18
>>>
>>> age=25
>>> name='Jone'
>>> print('{name},{age}'.format(age=age,name=name)); #使用变量的情况
Jone,25
>>>
第三种:使用对象属性
>>> class Person:
def __init__(self,name,age):
self.name = name;
self.age = age;
def toStr(self):
return 'Name is{self.name} age was {self.age} old'.format(self=self);
>>> s = Person('zhangsan',25).toStr();
>>> print('s=%s'%s);
s=Name iszhangsan age was 25 old
>>>
第四种:使用下标(list,元组)
>>> p=['ZhangSan',25] #使用list
>>> print('{0[0]},{0[1]}'.format(p));
ZhangSan,25
>>>
>>> p=('zhangsan',25,'Beijing'); #使用元组
>>> print('name={0[0]},age={0[1]} city={0[2]}'.format(p));
name=zhangsan,age=25 city=Beijing