在格式字符串中使用参数

时间:2015-04-08 03:48:08

标签: python string python-2.7 string-formatting

此:

print '{:x<4d}'.format(34)

打印出来:

34xx

我该怎么做:

width = 13
print '{:x<|width|d}'.format(34)

得到这个:

34xxxxxxxxxxx

4 个答案:

答案 0 :(得分:2)

您可以将一个格式字段放在另一个格式字段中:

>>> width = 13
>>> print '{:x<{}d}'.format(34, width)
34xxxxxxxxxxx
>>>

来自docs

  

format_spec字段还可以包含嵌套的替换字段   它。这些嵌套的替换字段只能包含字段名称;   不允许使用转换标志和格式规范。该   format_spec内的替换字段在替换之前被替换   format_spec字符串被解释。这允许格式化   要动态指定的值。

但请注意,嵌套只能达到一个深度。

答案 1 :(得分:2)

你可以用格式嵌套参数,使用kwargs可以让你更明确,更不容易混淆结果:

fillchar = 'x'
width = 13
print "{:{f}<{w}d}".format(34, w=width, f=fillchar)

答案 2 :(得分:1)

这有效

('{:x<%dd}' % width).format(34)

答案 3 :(得分:1)

这将有效:

>>> width = 13 
>>> print '{:x<{}d}'.format(34,width)
34xxxxxxxxxxx