此:
print '{:x<4d}'.format(34)
打印出来:
34xx
我该怎么做:
width = 13
print '{:x<|width|d}'.format(34)
得到这个:
34xxxxxxxxxxx
答案 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