2016-11-17 49 views
1

我知道,当我使用如何在特定大小的变量中使用字符串格式?

"%2d"%(x) 

我会得到x的字符串,并以2至少大小,如果x的长度短于2我将收到获得空间。 但我怎样才能把2作为一个变量呢? 例如:

"%nd"%(2,1) 
' 1' 

是否有可能在Python?或者我需要为它创建一个循环?

+3

' '%* d' %(N,X)'应该工作 – vaultah

+0

@vaultah是正确的。它为我工作。 –

+0

FWIW新的格式应该在Python 2.7中工作:'{:> {}}'。格式(x,n)' – Billy

回答

1

使用*和实际宽度将从值的元组的下一个元素被读取,并且转换的值将是一个如下:

>>> "%*d" % (2, 1) 
' 1' 

这是记录在文档中的String Formatting Operations部分 - 它说:

  1. 最小字段宽度(可选)。如果指定为'*'(星号),则将从元组的下一个元素值中读取实际宽度,并且要转换的对象位于最小字段宽度和可选精度之后。
+0

非常感谢! 这是@vaultah评论一个这个工程! –

1

你可以选择要与新样式格式更详细:

>>> '{:{width}d}'.format(1, width=2) 
' 1' 
+0

不是新风格的粉丝,但它的工作原理 –

+2

@guy:实际上新风格有点更强大(并且容易,一旦你掌握了它),所以我建议你花时间学习它。 – martineau