📜  打印以下金字塔图案(1)

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

打印以下金字塔图案

作为一个程序员,你肯定经常需要在控制台上输出各种图案,而金字塔图案无疑是最基本、最常见的一种。下面我们就来看看如何用代码来打印出不同大小的金字塔图案。

1. 打印指定层数的金字塔

以下代码可以打印出指定层数的金字塔图案:

def print_pyramid(n):
    for i in range(1, n+1):
        print(' '*(n-i) + '*'*(2*i-1))

这里的 n 表示金字塔的层数。我们使用 range 函数循环打印每一层,然后根据当前层数 i 计算需要打印多少个空格和星号。运行 print_pyramid(5) 就可以得到一个五层的金字塔:

    *
   ***
  *****
 *******
*********
2. 打印指定宽度的金字塔

如果你希望打印出指定宽度的金字塔,即底部有几个星号,可以使用以下代码:

def print_pyramid(width):
    n = (width + 1) // 2
    for i in range(1, n+1):
        print(' '*(n-i) + '*'*(2*i-1))

这里的 width 表示金字塔底部的宽度。我们首先根据宽度计算出金字塔的层数 n,然后按照之前的方法来打印每一层。例如,运行 print_pyramid(7) 就可以得到一个底部宽度为 7 的金字塔:

   *
  ***
 *****
*******
3. 优化输出效果

当金字塔的层数较多时,简单的打印方式可能会出现对齐问题。为了让输出效果更加美观,我们可以使用 center 函数来居中输出每一行:

def print_pyramid(n):
    for i in range(1, n+1):
        print(('*'*(2*i-1)).center(2*n-1))

这里的 center 函数可以让每一行的内容居中对齐。我们不用再手动计算需要多少空格,直接按照每一层的长度计算即可。例如,运行 print_pyramid(5) 就可以得到一个五层的金字塔并且每一行都居中对齐:

        *        
       ***       
      *****      
     *******     
    *********    
4. 总结

金字塔图案是控制台输出中最基本、最常见的图案之一。在打印金字塔时,我们需要根据层数或底部宽度来计算需要输出多少个空格和星号。此外,使用 center 函数可以让输出效果更加美观。