format函数主要是用来格式化字符串,达到我们想要的输出形式。以下分别对4种格式化形式进行举例说明,关于format函数的其他用法请读者自行查阅。
1. 通过位置映射
#通过位置映射
c='xx{0}xx{1}xx{1}'.format("123","hello")
print(c)
输出:xx123xxhelloxxhello
这里的0和1分别表示format函数中参数的位置,0位置代表的就是”123”,1位置代表的就是”hello”,把0和1的位置分别用”123”和”hello”去填充(映射)。xx的位置可以随便写你想要的字符串,也可以为空,例如’{0}{1}’.format(“123”,”hello”)返回的就是123hello,千万别忘了外面的两个单引号,当然了,换成两个双引号也可以。
c="xx{}xx{}".format("123","hello")
print(c)
输出:xx123xxhello
如果所有花括号{ }里面为空的话,那么{ }的个数就不能随便写了,最多不能超过后面的参数的个数,例如本例中format函数里面是2个参数”123”和”hello”,那么{ }最多只能写2个,也可以一个都没有,如果是写一个{ }的话,它会映射为”123”,因为是按照顺序来的。有人可能会问了,可不可以这样写’{1}{ }’.format(“123”,”hello”),答案是不能,这样的话后面那个{}就不知道该映射那个参数了。所以要为空都为空,要不为空都不为空。
2. 通过关键字映射
#通过关键字映射
e='name={n}xxxage={a}xxxage={a}'.format(n="zhangkang",a=24)
print(e)
输出:name=zhangkangxxxage=24xxxage=24
这个应该简单易懂吧,{ }里面必须填后面的关键字(参数名)。
3. 通过下标映射
p=["zhang","kang",24]
f='{0[0]}xxx{0[1]}xxx{0[2]}xxx{0[1]}'.format(p)
print(f)
输出:zhangxxxkangxxx24xxxkang
这里中括号里面的0,1,2代表的是列表p中元素的位置,当然把列表换成元组也行。每个中括号前面的0必须得写,至于为啥我也不知道。
4. 通过对象属性映射
#通过对象的属性映射
class person:
def __init__(self,name,age):
self.name=name
self.age=age
def getMes(a):
return 'his name is {b.name} and age is {b.age}'.format(b=a)
p=person("zhang",24)
print(getMes(p))
这个自己体会吧!