温文默克的学习笔记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后取整加一。这样一来,空心菱形的绘制就完成了,不过记得输入的需要是奇数,否则无法得到想要的结果,至于输入偶数实现空心菱形的变换就要更改一下空心的规律了,感兴趣的朋友可以自己试验一下。


分享到:


相關文章: