如何相应地在程序中添加空格?

时间:2013-08-17 02:50:09

标签: python python-3.x

我的意思是,我想制作一个根据用户输入打印星星的程序 我做到了:

for i in range(num):
  print((i*-1)*' ' + (i+1)*'*')



for o in range(num-1):  
  print((num-o-1)*'*')

除了这个:

 *
* *
 *

我明白了:

*
**
*

如何实现空格?提前谢谢!

1 个答案:

答案 0 :(得分:2)

如果将字符串乘以负数,则只需获取空字符串。而且你的公式开头不正确。您需要在前面填充足够的空间以使其对齐(在等宽的终端中)。

这是正确执行此操作的一种方法

>>> def diamond(n):
...     print(' '*n + '*')
...     for i in list(range(1,n)) + list(range(n,0,-1)):
...             print('{}*{}*'.format(' '*(n-i), ' '*(2*i-1)))
...     print(' '*n + '*')

将范围转换为列表对于大n来说效率不高,但它不是瓶颈,终端实际上​​只支持最多80个字符的宽度。