打印菱形的方法我们已经掌握了,拿如何打印成空心的菱形呢?如图所示:
对比普通菱形我们会发现,在普通菱形的基础上,我们“*”的数量明显减少了,只留下了最边缘的一圈,所以在打印“*”的时候我们就需要进行操作。
row=eval(input("请输入菱形的行数(必须为奇数行):")) while row%2==0: print("手滑了,请重新输入!") row = eval(input("请输入菱形的行数(必须为奇数行):")) 以上代码不做解释,如不明白请参考上一篇内容! #打印上半部分 top_row=row//2+1 for i in range(1,top_row+1): for j in range(1,top_row+1-i): print(" ",end=" ") for k in range(1,2*i): # 在此处判断什么时候应该打印上半部分的“*” if(k==1 or k==2*i-1): print("*",end=" ") else: print(" ",end=" ") print() #打印下半部分 bottom_row = row//2 for i in range(1,bottom_row+1): for j in range(1,i+1): print(" ",end = " ") for k in range(1,2*(bottom_row+1-i)): #在此处判断什么时候打印下半部分的“*” if(k==1 or k==2*(bottom_row+1-i)-1): print("*",end=" ") else: print(" ",end=" ") print()
红色部分代码即是判断什么时候满足条件,即k的值最小或者最大的均满足情况。此案例只要掌握了菱形的打印方法之后会非常简单。