如何在python中打印'*'之间的空格

时间:2014-12-09 11:07:26

标签: python python-2.7

我想在每个*之后显示一个空格。我的代码是:

def stars(n):
    for x in reversed(range(n+1)):
            print x * '*'

我得到的输出是:

*****
****
***
**
*

但我想:

* * * * *
* * * *
* * *
* *
*

另外,我想从右侧打印



* *
  *   

是否有任何方法可以从最后一个位置打印?

2 个答案:

答案 0 :(得分:5)

您可以使用str.join更轻松地加入具有给定分隔符的字母序列,在这种情况下为空格' '

def stars(n, delim=' '):
    for x in reversed(range(n+1)):
        print(delim.join('*'*x))

stars(5)

这给出了

* * * * *
* * * *
* * *
* *
*

答案 1 :(得分:4)

当您将字符串相乘时,它不必是单个字符,您可以使用print x * '* '

>>> def stars(n):
...         for x in reversed(range(n+1)):
...                 print x * '* '
...
>>> stars(4)
* * * * 
* * * 
* * 
* 

请注意,这也会在每行后显示尾随空格;如果这对你有用,你可以使用:

print (x * '* ')[:-1]

您还可以导入使用分隔符参数sep的打印函数:

>>> from __future__ import print_function
>>> print(*('*'*4),sep=' ')
* * * *
>>> def stars(n):
...     for x in reversed(range(n+1)):
...             print( *(x * '*'), sep=' ')
...
>>> stars(4)
* * * *
* * *
* *
*