使您的三角形。
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
您是否要求我們爲您編寫代碼?如果是這樣,你會在別處找到更好的幫助。但是,如果您的代碼存在特定問題,請重新解釋您的問題以解決該問題。 –
究竟決定了多少個兄弟姐妹,以及他們應該變小多少? –