我想用下面给出的代码得到一个倒金字塔。类似的代码适用于直立金字塔,但这些调整似乎不适用于倒金字塔。
试图调整语句很多,但没有运气。
def pym(rows):
result = ''
for i in range(rows):
row = ''
row += '#' * (i-1)
row += '*' * (2 * (rows-i) + 1)
row += '#' * (i-1)
result += row + '\n'
return result
print (pym(4))
预期产量
*******
#*****#
##***##
###*###
最佳答案
for循环条件略有错误,应将循环更正为for i in range(1,rows+1):
而不是for i in range(rows):
,然后您的代码才能正常工作。
def pym(rows):
result = ''
#Corrected the range
for i in range(1,rows+1):
row = ''
row += '#' * (i-1)
row += '*' * (2 * (rows-i) + 1)
row += '#' * (i-1)
result += row + '\n'
return result
print (pym(4))
输出是
*******
#*****#
##***##
###*###
如您所见,从
i=0
而不是i=1
开始会导致行变量出现问题,例如在for循环的前两个表达式中使用i = 0
,row
如下所示In [21]: row = ''
In [22]: row += '#' * -1
In [23]: row
Out[23]: ''
同样,由于您仅迭代到
rows-1
,因此您最终也没有获得最终的金字塔。关于python - Python中的倒金字塔,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56141883/