📜  打印对称双三角图案(1)

📅  最后修改于: 2023-12-03 15:25:45.603000             🧑  作者: Mango

打印对称双三角图案

本文将介绍如何使用Python打印对称双三角图案。图片如下所示:

       *       
      ***      
     *****     
      ***      
     *****     
    *******    
   *********   
    *******    
   *********   
  ***********  
 ************* 
  ***********  
 ************* 
*************** 
实现思路

首先,我们考虑如何分别打印上、下两个三角形。可以发现,它们的打印方式有很多共同点,只是在某些地方有所区别。因此,我们可以先写一个函数print_triangle来打印一个普通三角形,再通过修改它的参数来打印上、下两个三角形。

而对称双三角图案的关键在于如何打印它们。“对称”的意思是它们中心线两侧的形状是一模一样的,因此我们可以先打印一个普通的三角形,再在中心线处对称复制一遍。具体实现方式是先打印上三角形,然后对称复制下三角形。

代码实现

下面是完整的Python代码:

def print_triangle(height):
    for i in range(1, height+1):
        spaces = " " * (height-i)
        stars = "*" * (2*i-1)
        print(spaces + stars)
    
def print_symmetric_double_triangle(height):
    print_triangle(height//2 + 1)
    print_triangle(height//2)[::-1]

print_symmetric_double_triangle(15)

代码中的print_triangle函数可以接收一个参数height,表示三角形的高度。它通过嵌套循环,打印出一个高度为height的等腰三角形。

print_symmetric_double_triangle函数接收一个参数height,表示对称双三角形的总高度(包括中心线)。它分别打印上、下两个三角形,中间用中心线分隔。这里使用了Python中比较常见的“切片倒序”技巧,来将下三角形打印出来。

最后,我们可以调用print_symmetric_double_triangle函数,传入参数15,验证代码是否正常工作。