这是我的代码,但是我无法让金字塔像金字塔一样正确地间隔开,并且每行只有奇数个星号。 为基数输入7时的输出应为
*
***
*****
*******
这是我的代码:
base = int(input( 'enter an odd number for the base : ' ) )
for i in range( 0, base ):
print '*' * i
答案 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)
您的代码中存在一些错误:
print '...'
而非print
,因此您可能位于python2中,其中需要raw_input
而不是input
; range(1, base+1, 2)
。演示:
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
*
***
*****
*******