溫文默克的學習筆記Python篇(5.5)——繪製空心菱形

在之前的分享中,筆者曾經寫過關於繪製等腰三角形以及從它衍生的菱形(沒看過的朋友可以看我之前的分享:

溫文默克的學習筆記Python篇(3.5)——繪製等腰三角形),今天筆者要說的也是類似的等腰三角形的變形——空心菱形。

溫文默克的學習筆記Python篇(5.5)——繪製空心菱形

要想實現空心菱形的繪製,首先需要找到規律。和我們之前講的菱形相比,空心菱形多出了中間這部分。還是分為上下兩部分,以上為例,外層空格的規律如下:

溫文默克的學習筆記Python篇(5.5)——繪製空心菱形

用代碼表示為:

<code>

for

i in

range

(half_lines):

print

(

" "

* (half_lines - i), end=

""

)/<code>

然後是繪製菱形主線條的“*”圖案,可以明顯看出,除了首尾每行都是兩個。同時可以看出中間的空格也是首尾沒有,其規律如下:

溫文默克的學習筆記Python篇(5.5)——繪製空心菱形


因此,我們只需要使用if進行判斷,如果是首行或尾行,那麼就只打印一個“*”,否則就按照上面的規律打印空格和前後的兩個“*”,轉換成代碼如下:

<code>

if

i ==

0

:

print

(

"*"

)

else

:

print

(

"*"

,

end

=

""

)

print

(

" "

* (

2

* i -

1

),

end

=

""

)

print

(

"*"

)/<code>

最後是同理打印下半部分,這裡不再進行過多贅述,筆者提供一種方式供大家參考:

<code>

for

i

in

range(half_lines -

1

):

print

(

" "

* (i +

2

),

end

=

""

)

if

i == half_lines -

2

:

print

(

"*"

)

else

:

print

(

"*"

,

end

=

""

)

print

(

" "

* (

lines

-

4

-

2

* i),

end

=

""

)

print

(

"*"

)/<code>

我們再使用input()函數輸入我們想要的行數,半行就等於行數除以2後取整加一。這樣一來,空心菱形的繪製就完成了,不過記得輸入的需要是奇數,否則無法得到想要的結果,至於輸入偶數實現空心菱形的變換就要更改一下空心的規律了,感興趣的朋友可以自己試驗一下。


分享到:


相關文章: