星号金字塔没有正确分隔

时间:2014-03-04 17:53:40

标签: python

这是我的代码,但是我无法让金字塔像金字塔一样正确地间隔开,并且每行只有奇数个星号。 为基数输入7时的输出应为

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

这是我的代码:

base = int(input( 'enter an odd number for the base : ' ) )
for i in range( 0, base ):
    print '*' * i

2 个答案:

答案 0 :(得分:2)

您可以使用str.center()

for i in range(1, base + 1, 2):
    print ('*' * i).center(base)

但请使用步长2,并调整范围。第一行始终以1星开头,range()不包含最后一个值。

对于7,这意味着您要打印1,3,5和7颗星,每次迭代递增2次。

答案 1 :(得分:1)

您的代码中存在一些错误:

  1. 由于您使用的是print '...'而非print,因此您可能位于python2中,其中需要raw_input而不是input;
  2. 对于您的样本输出,需要
  3. range(1, base+1, 2)
  4. 演示:

    In [6]: base = int(raw_input( 'enter an odd number for the base : ' ) )
       ...: for i in range(1, base+1, 2):
       ...:     print ('*' * i).center(base)
    
    enter an odd number for the base : 7
       *   
      ***  
     ***** 
    *******