使您的三角形。
def make_triangle(size, siblings, step):
return [['*' * (i-(step*sib)) + ' ' * ((size-(step*sib)) - ((i-(step*sib)) if (i-(step*sib) > 0) else 0)) for sib in xrange(siblings)] for i in xrange(1, size+1)]
输出:
>>> for i in make_triangle(9,3,3):
print ''.join(i)
*
**
***
**** *
***** **
****** ***
******* **** *
******** ***** **
******************
,或者你可以把它所有的功能和:
def make_triangle(size, siblings, step):
return '\n'.join([''.join(line) for line in [['*' * (i-(step*sib)) + ' ' * ((size-(step*sib)) - ((i-(step*sib)) if (i-(step*sib) > 0) else 0)) for sib in xrange(siblings)] for i in xrange(1, size+1)]])
>>> print make_triangle(9,3,3)
*
**
***
**** *
***** **
****** ***
******* **** *
******** ***** **
******************
,如果你想他们之间的空间:
def make_triangle(size, siblings, step):
return '\n'.join([' '.join(line) for line in [['*' * (i-(step*sib)) + ' ' * ((size-(step*sib)) - ((i-(step*sib)) if (i-(step*sib) > 0) else 0)) for sib in xrange(siblings)] for i in xrange(1, size+1)]])
>>> print make_triangle(9,3,3)
*
**
***
**** *
***** **
****** ***
******* **** *
******** ***** **
********* ****** ***
为了好玩(你可以看到非常漂亮的功能上):
>>> print make_triangle(13,5,2)
*
**
*** *
**** **
***** *** *
****** **** **
******* ***** *** *
******** ****** **** **
********* ******* ***** *** *
********** ******** ****** **** **
*********** ********* ******* ***** ***
************ ********** ******** ****** ****
************* *********** ********* ******* *****
,更有趣:
>>> print make_triangle(13,5,2)[::-1]
***** ******* ********* *********** *************
**** ****** ******** ********** ************
*** ***** ******* ********* ***********
** **** ****** ******** **********
* *** ***** ******* *********
** **** ****** ********
* *** ***** *******
** **** ******
* *** *****
** ****
* ***
**
*
另外:它是如何工作的一些解释:
这是代码做更多的基本形式是什么:
def make_triangle(size, siblings, step):
out_list = []
for i in xrange(1, size+1):
in_list = []
for sib in xrange(siblings):
if i-(step*sib) > 0:
in_list.append('*' * (i-(step*sib)) + ' ' * ((size-(step*sib)) - (i-(step*sib))))
else:
in_list.append('*' * (i-(step*sib)) + ' ' * (size-(step*sib))
out_list.append(in_list)
line_list = []
for in_list in out_list:
line_list.append(' '.join(in_list))
result = '\n'.join(line_list)
return result
制定兄弟姐妹的规则是什么? – japreiss
您是否要求我们为您编写代码?如果是这样,你会在别处找到更好的帮助。但是,如果您的代码存在特定问题,请重新解释您的问题以解决该问题。 –
究竟决定了多少个兄弟姐妹,以及他们应该变小多少? –