2017-08-05 64 views
0

C有printf("%Xd", Y);,它只是打印整数X并使其在控制台窗口中占用Y空间。如何打印一个具有一定数量的空格的整数?

例如:

printf("%3d", 10); 
console: " 10"` 

printf("%5d", 5); 
console: " 5" 

如何在Python 3使用?

+0

print('%10d'%20) – danche

+0

您可以在以下url中看到解决方案:https://stackoverflow.com/questions/12450704/how-to-print-spaces-in-python – Toandd

回答

1

这个print("{0:10d}".format(5))将在9个空白后打印5个。 有关Python中格式化的更多参考,请参阅this

0

我会做这样的事情:

>>> print(10*' ',10) 
      10 
>>> print(5*' ',5) 
     5 
>>> x=5 
>>> print(x*' ',x) 
     5 
>>> 
0

使用ljustrjust

这些蟒蛇方法把它无论是在一个字符串,pad左侧或右侧,使其的chars一组号码只要你想打印到控制台。

举个例子与.rjust

num = 1234 
chars = 9 
print(str(num).rjust(chars)) 

这将输出:

"  1234" 

或使用.ljust会给你:

"1234  " 

有一点要注意的是,.ljust.rjust显着不同在int之前或之后打印一组空格' ',因为它们允许您指定总数字符串的长度而不是之前的空白。例如在使用这些方法打印表格时,这是一个关键的事情,可以使设置为宽度使其整齐。而简单地增加空间预先将导致不同宽度作为对integersdigits会改变使总长度来改变使宽度变化的数量。

当然,如果你愿意,你仍然可以指定字符串的长度,然后计算出有多少空间需要之前放置或int之后。

所以.rjust可能是这样的:

num = 1234 
chars = 9 
print(' ' * (chars - len(str(num))) + str(num)) 

注意到,在这里,我有级联num作为字符串到与+空白,而不是在打印语句作为逗号用逗号将在两者之间增加一个空间。

.ljust将是相同的,但num第一印刷:

print(str(num) + ' ' * (chars - len(str(num)))) 

然而,所有这些工作是不必要的,看起来非常凌乱考虑你可以使用原来的两个内置的Python方法:)

0

你可以试试这个

x = " " 
y = 10 
print((x*5), y) 

而且你的输出就会

 10 

将x指定给一个带有空格的字符串,然后在打印时,只需将字符串与空格相乘y之前所需的空格数。

相关问题