如果是单个数字,则正好打印 1 space?

Printing with exactly 1 space if a single digit?

我正在打印一个整数,它可能有 1 位或 2 位数字长。
我正在使用:

print str(myInt)

但是,我希望它始终打印出 2 'spaces' 长的内容。如果 myInt 只有一位数字,那么我希望用 space 填充它然后打印出数字。 有没有一种简单的方法可以做到这一点? 我想要的示例输出:

 1
15
20
 3
>>> print '{:2}'.format(1)
 1
>>> print '{:2}'.format(23)
23
import re
x=[1,15,20,3]
print [re.sub(r"^0"," ",str(i).zfill(2)) for i  in x]

输出:[' 1', '15', '20', ' 3']

做简单事的艰难方法:P

您可以通过以下方式获得所需的输出:

print "%2s" % num

其中 2 是最小字段宽度。例如:

print "%2s" % 4
print "%2s" % 12

将导致:

 4
12

如果您需要更多前导空格,您只需将 %2s 中的 2 替换为适当的最小字段宽度。我建议您阅读 String Formatting Operations 文档。

在这里,您不需要将 Integer 转换为 String。

val = 10
val1 = 1
print "%2d" % val
print "%2d" % val1

输出:

10
 1