📜  用Python打印金字塔图案的程序

📅  最后修改于: 2020-01-17 13:53:34             🧑  作者: Mango

可以使用简单的for循环在Python中打印图形。第一个外部循环用于处理行数,内部嵌套循环用于处理列数。操纵打印语句,可以打印不同的数字图案,字母图案或星形图案。
本文显示了一些打印图案的模式。
 

  • 简单的金字塔图案
    # Python 3.x打印图案
    # 构建方程
    def pypart(n):
        # 外部循环处理行
        for i in range(0, n):
            # 内部循环处理列
            for j in range(0, i+1):
                # 打印✨
                print("* ",end="")
            # 每行末端处理
            print("\r")
    # 测试
    n = 5
    pypart(n)

    输出:

    *
    * *
    * * *
    * * * *
    * * * * *

    另一种方法:
    在Python 3中使用列表,这可以通过更简单的方式完成

    # Python 3.x打印图案
    # 创建函数
    def pypart(n):
        myList = []
        for i in range(1,n+1):
            myList.append("*"*i)
        print("\n".join(myList))
    # 测试代码
    n = 5
    pypart(n)

    180度旋转:

    # Python 3.x打印图案
    # 定义函数
    def pypart2(n):
        # 定义空格数量
        k = 2*n - 2
        # 外不循环控制行
        for i in range(0, n):
            # 行的内循环
            for j in range(0, k):
                print(end=" ")
            # 减少k
            k = k - 2
            # 内部循环控制列
            for j in range(0, i+1):
                # 打印
                print("* ", end="")
            # 行末端的处理
            print("\r")
    # 测试代码
    n = 5
    pypart2(n)

    输出:

            *
          * *
        * * *
      * * * *
    * * * * *

    印刷三角

    # Python 3.x打印图案
    # 构建函数
    def triangle(n):
        # 空格数
        k = 2*n - 2
        # 外不循环处理行
        for i in range(0, n):
            # 行的内循环
            for j in range(0, k):
                print(end=" ")
            # decrementing k after each loop
            k = k - 1
            # 内部循环控制列
            for j in range(0, i+1):
                # 打印✨
                print("* ", end="")
            # 行结束的处理
            print("\r")
    # 测试代码
    n = 5
    triangle(n)

    输出:

        *
       * *
      * * *
     * * * *
    * * * * *

    数字模式

    # Python 3.x打印图案
    # 定义函数
    def numpat(n):
        # 定义开始的数字
        num = 1
        # 外部循环控制行
        for i in range(0, n):
            # 重新赋值
            num = 1
            # 内部循环控制列
            for j in range(0, i+1):
                    # 打印数字
                print(num, end=" ")
                # 每列num增长
                num = num + 1
            # 行末端处理
            print("\r")
    # 测试代码
    n = 5
    numpat(n)

    输出:

    1
    1 2
    1 2 3
    1 2 3 4
    1 2 3 4 5

    号码,无需重新分配

    # Python 3.x打印图案
    # 定义函数
    def contnum(n):
        # 初始化数字
        num = 1
        # 外部循环控制行
        for i in range(0, n):
            # 不重新复制
            # num = 1
            # 内部循环控制列
            for j in range(0, i+1):
                # 打印数字
                print(num, end=" ")
                # 每列增加数字
                num = num + 1
            # 每行末端处理
            print("\r")
    n = 5
    # 测试
    contnum(n)

    输出:

    1
    2 3
    4 5 6
    7 8 9 10
    11 12 13 14 15

    角色模式

    # Python 3.x打印图案
    # 定义函数
    def alphapat(n):
        # 初始化'A'的ASCII值
        num = 65
        # 外部循环控制行
        for i in range(0, n):
            # 内部循环控制列
            for j in range(0, i+1):
                # 转换成字符
                ch = chr(num)
                # 打印字符
                print(ch, end=" ")
            # 增加数字
            num = num + 1
            # 行末端处理
            print("\r")
    # 测试代码
    n = 5
    alphapat(n)

    输出:

    A
    B B
    C C C
    D D D D
    E E E E E

    连续字符模式

    # Python 3.x代码打印图案
    # 定义函数
    def  contalpha(n):
        # 初始化'A'的ASCII值
        num = 65
        # 外部循环控制行
    -   for i in range(0, n):
            # 内部循环控制列
            for j in range(0, i+1):
                # 转换成字符
                ch = chr(num)
                # 打印字符
                print(ch, end=" ")
                # 每列增加
                num = num +1
            # 行末端处理
            print("\r")
    # 测试代码
    n = 5
    contalpha(n)

    输出:

    A
    B C
    D E F
    G H I J
    K L M N O