在之前的分享中,笔者曾经写过关于绘制等腰三角形以及从它衍生的菱形(没看过的朋友可以看我之前的分享:
温文默克的学习笔记Python篇(3.5)——绘制等腰三角形),今天笔者要说的也是类似的等腰三角形的变形——空心菱形。要想实现空心菱形的绘制,首先需要找到规律。和我们之前讲的菱形相比,空心菱形多出了中间这部分。还是分为上下两部分,以上为例,外层空格的规律如下:
用代码表示为:
<code>for
i inrange
(half_lines):" "
* (half_lines - i), end=""
)/<code>
然后是绘制菱形主线条的“*”图案,可以明显看出,除了首尾每行都是两个。同时可以看出中间的空格也是首尾没有,其规律如下:
因此,我们只需要使用if进行判断,如果是首行或尾行,那么就只打印一个“*”,否则就按照上面的规律打印空格和前后的两个“*”,转换成代码如下:
<code>if
i ==0
:"*"
)else
:"*"
,end
=""
)" "
* (2
* i -1
),end
=""
)"*"
)/<code>
最后是同理打印下半部分,这里不再进行过多赘述,笔者提供一种方式供大家参考:
<code>for
iin
range(half_lines -1
):" "
* (i +2
),end
=""
)if
i == half_lines -2
:"*"
)else
:"*"
,end
=""
)" "
* (lines
-4
-2
* i),end
=""
)"*"
)/<code>
我们再使用input()函数输入我们想要的行数,半行就等于行数除以2后取整加一。这样一来,空心菱形的绘制就完成了,不过记得输入的需要是奇数,否则无法得到想要的结果,至于输入偶数实现空心菱形的变换就要更改一下空心的规律了,感兴趣的朋友可以自己试验一下。