在python 3中翻转线条以形成钻石

时间:2016-04-06 13:23:01

标签: python

此代码的想法是输入一个高度并形成一个带星号(星号)的钻石。

例如。如果高度输入为6,我希望代码生成:

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

到目前为止,我已经上半部分,并且想知道是否有可能翻转'水平划线。

height = int(input('Enter triangle height: '))
star = height
while star >= 1:
    a = int(star)*'*'
    b = int(2*height-2*star)*' '
    c = (height-star)*''
    d = star*'*'
    print(a, b,c,d,sep='')
    star = star - 1
star = height
while star >= 2:
    a = int(star)
    b = int(2*height-2*star)
    c = int((height-star))
    d = int(star)
    print(a*'*', b*' ',c*'',d*'*',sep='')
    star = star - 1`

1 个答案:

答案 0 :(得分:1)

更改你的第二个while循环以检查是否star <= height,并从2增加星号。

所以它看起来像

star = 2
while star <= height:
    a = int(star)
    b = int(2*height-2*star)
    c = int((height-star))
    d = int(star)
    print(a*'*', b*' ',c*'',d*'*',sep='')
    star = star + 1

这是因为你想从“小”变为“大”所以你需要做第一个while循环的倒数,这会减少*的数量。