您可以使用str.format()
方法,该方法可以为宽度之类的值插入其他变量:
'Number {i}: {num:{field_size}.2f}'.format(i=i, num=num, field_size=field_size)
每个参数{}
都是一个占位符,用于填充关键字参数中的命名值(您也可以使用编号的位置参数)。可选部分后面的部分:
给出了格式(format()
基本上是函数的第二个参数),您可以{}
在那里使用更多占位符来填充参数。
使用编号位置如下所示:
'Number {0}: {1:{2}.2f}'.format(i, num, field_size)
但您也可以将两者混用或选择其他名称:
'Number {0}: {1:{width}.2f}'.format(i, num, width=field_size)
如果省略数字和名称,则字段将自动编号,因此以下等效于前面的格式:
'Number {}: {:{width}.2f}'.format(i, num, width=field_size)
请注意,整个字符串都是模板,因此Number
字符串和冒号等内容都是模板的一部分。
但是,您需要考虑到字段大小 包括 小数点;您可能需要调整大小以添加这3个额外字符。
演示:
>>> i = 3
>>> num = 25
>>> field_size = 7
>>> 'Number {i}: {num:{field_size}.2f}'.format(i=i, num=num, field_size=field_size)
'Number 3: 25.00'
最后但并非最不重要的一点,在Python 3.6及更高版本中,您可以使用格式化的字符串常量将变量直接放入字符串常量中:
f'Number {i}: {num:{field_size}.2f}'
使用常规字符串模板的优点str.format()
是可以交换出模板,f字符串的优点是可以在字符串值语法本身中内联非常易读和紧凑的字符串格式。