Python 1000 道练习题(9) python例题1000道

liftword5个月前 (12-25)技术文章54

在Python中,for循环用于打印各种种图案是最常见的编程问题。大多数打印模式都使用以下概念来控制输出:

  • 外部循环打印行数
  • 内部循环打印列数
  • 根据所需的空白位置,控制打印空白的变量
  • 上一篇文章,我们和大家一起学习了简单的三角形金字塔输出;大家自己尝试去写一遍了吗?下面让我们来继续尝试使用Python进行控制台图形的输出练习吧

    1.输出倒三角形金字塔模型

    rows = 10
      
    # 使用 k 来控制打印输出空格
    k = 2 * rows - 2  
    # 外循环,变量逆序循环 
    for i in range(rows, -1, -1):  
        # 这个内循环控制空格输出数量 
        for j in range(k, 0, -1):  
            print(end=" ")  
        k = k + 1  
        # 这个内循环控制输出星号 * 的数量
        for j in range(0, i + 1):  
            print("*", end=" ")  
        print("")  
    

    输出:

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

    2.输出菱形金字塔模型

    rows = 10
      
    # k 为空值空格输出的变量 
    k = 2 * rows - 2  
    # 外循环控制打印行数 
    for i in range(0, rows):  
        # 这个内循环控制输出空格数
        for j in range(0, k):  
            print(end=" ")  
        # k 递减
        k = k - 1  
        # 这个内循环控制输出星号 * 数量
        for j in range(0, i + 1):  
            print("* ", end="")  
        print("")  
      
    # 输出倒三角金字塔
    # k 为空值空格输出的变量 
    k = rows - 2  
    # 逆序循环
    for i in range(rows, -1, -1):  
        # 这个内循环控制输出空格数 
        for j in range(k, 0, -1):  
            print(end=" ")  
        # k 递增 
        k = k + 1  
        # 这个内循环控制输出星号 * 数量 
        for j in range(0, i + 1):  
            print("* ", end="")  
        print("")  
    

    输出:

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

    3.输出侧边金字塔模型

    rows = 10
      
    # 外循环控制打印行数
    for i in range(0, rows):  
        # 内循环控制打印星号 * 数量  
        for j in range(0, i + 1):  
            print("*", end=' ')  
        # 每次迭代后变换行 
        print(" ")  
    # 逆序再次输出打印一次
    for i in range(rows + 1, 0, -1):  
        for j in range(0, i - 1):  
            print("*", end=' ')  
        print(" ")  
    

    输出:

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

    4.输出漏斗金字塔模型

    rows = 10
    k = rows - 2  
    # 打印输出倒金字塔模型
    for i in range(rows, -1 , -1):  
        for j in range(k , 0 , -1):  
            print(end=" ")  
        k = k + 1  
        for j in range(0, i+1):  
            print("* " , end="")  
        print()  
      
    # 打印输出正金字塔模型
    k = 2 * rows  - 2  
    for i in range(0 , rows+1):  
        for j in range(0 , k):  
            print(end=" ")  
        k = k - 1  
        for j in range(0, i + 1):  
            print("* ", end="")  
        print()  
    

    输出:

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

    今天和大家一起使用Python输出了一些更复杂的金字塔模型,大家都学会了吗? 欢迎大家关注:Python学徒,一起学习Python吧!

    相关文章

    Python面试宝典第10题:精选选择题

    题目1在以下函数中,b和a的关系是___。def add_one_to_list(lst): lst.append(1) return lst a = [1, 2, 3] b = a...

    Python练习题 python入门经典100题

    题目1:计算1-2+3-4+...+99-100# using while-loop num = 1 sum_result = 0 while num <= 100: if num %...

    Python 概念题和代码题速看 与python概念有关的选择题

    python基础练习题代码题1.输入一个字符串,把字符串拆分成两个等分■ 如果字符串长度是偶数,前一半和后一 半的长度是相同的■ 如果字符串长度是奇数,则多出的一个 字符加到前一半,如:‘abcde’...