Python如何优美地格式化字符串?

上次Paradoxical使用format()实现了营销号生成器的功能,此次就来教你们format()的常见使用方式吧~
ide

字符串的format()传入的是不定长参数和关键字参数(有关不定长参数和关键字参数请看这里→戳我)。spa

图片


按照位置传递参数当花括号内没有字段的时候,则按照参数的顺序去格式化,参数的个数只能多不能少。3d

#定义字符串s = '{}{}{}'
#按照个数传入参数s.format(1, 2, 3)
#传入多余的参数,多余的参数不会被使用s.format(1984)
#传入比须要的数量少的参数,会报错s.format(19)

图片


根据字段传入参数当花括号里有字段的时候,须要传入关键字参数。
code

#定义字符串s = '{a}{b}{c}'
#按照花括号内的字段传入参数s.format(a='南山', b='公园', c='游泳池')
#调换顺序也可s.format(b='公园', a='南山', c='游泳池')
#全部字段都须要获取参数s.format(b='公园', a='南山')

图片


经过正整数传递参数由于不定长参数会以元组的形式接收传入的参数,因此能够在花括号内传入正整数去获取不定长参数的元素。至关于tuple[n]。orm

s = '{0}{1}{2}'#将第0、第一、第2个参数按顺序传入字符串s.format(3, 2, 1)
s = '{0}{1}{0}'#将第0、第一、第0个参数按顺序传入字符串s.format('S', 'O')

图片


经过操做符获取参数的内容当传入的参数是字符串、列表、元组等能够用“[]”获取元素的类型时,能够经过“[]”获取参数的内容。同理能够经过“.”获取实例的属性。blog

#用列表推导式建立列表l = [i for i in range(10)]#定义字符串s = '{0[1]}{0[8]}{0[7]}{0[4]}'#用第0个参数的第1个、第8个、第7个、第4个元素格式化字符串s.format(l)
#定义字典dic = {'addr''南山公园''fac''游泳池'}#定义字符串s = '{0[addr]}{0[fac]}'#用第0个参数的addr字段、fac字段格式化字符串s.format(dic)
#定义字符串s = '{dict[addr]}{dict[fac]}'#用dict参数的addr字段、fac字段格式化字符串s.format(dict=dic)
#定义file类class file:  def __init__(self, name, f_type):    self.name = name    self.f_type = f_type#建立file类的实例f = file('test', 'txt')s = '{file.name} {file.f_type}'#根据file参数的name、f_type属性格式化字符串s.format(file=f)

图片

相关文章
相关标签/搜索