在Python中,使用for循环可以打印各种图案。打印各种图案是面试中最常见的编程问题之一。多个for循环用于打印图案,其中第一个外部循环用于打印行数,内部循环用于打印列数。大多数图案使用以下概念:

  • 外部循环用于打印行数。
  • 内部循环用于打印列数。
  • 变量根据在Python中所需的位置打印空格。

在本教程中,我们将讨论一些常见的图案。

在Python中打印金字塔、星星和菱形图案

在本节中,我们将学习常见的金字塔图案。

图案 - 1:简单金字塔图案

示例 -

# This is the example of print simple pyramid pattern  
n = int(input("Enter the number of rows"))  
# outer loop to handle number of rows  
for i in range(0, n):  
    # inner loop to handle number of columns  
    # values is changing according to outer loop  
        for j in range(0, i + 1):  
            # printing stars  
            print("* ", end="")       
  
        # ending line after each row  
        print()

输出:

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

说明:

在上面的代码中,我们初始化了变量n以输入图案的行数。我们输入了n = 5,外部for循环的范围将是0到4。

  • 内部for循环的迭代取决于外部循环。内部循环负责打印列数。
  • 在第一次迭代中,i的值为0,它增加了1,因此变为0+1,现在内部循环首次迭代并打印一个星号(*)。
  • 在第二次迭代中,i的值为1,它增加了1,因此变为1+1,现在内部循环迭代两次并打印两个星号(*)。
  • end参数防止跳入另一行。它将在循环有效时打印星号。
  • 最后一个打印语句负责在每行之后结束行。

图案 - 2:反向直角金字塔

示例 -

# This is the example of print simple reversed right angle pyramid pattern  
rows = int(input("Enter the number of rows:"))  
k = 2 * rows - 2  # It is used for number of spaces  
for i in range(0, rows):  
    for j in range(0, k):  
        print(end=" ")  
    k = k - 2   # decrement k value after each iteration  
    for j in range(0, i + 1):  
        print("* ", end="")  # printing star  
    print("")  

输出:

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

图案 - 3:打印下半部分 - 金字塔

代码 -

rows = int(input("Enter the number of rows: "))  
  
# the outer loop is executing in reversed order  
for i in range(rows + 1, 0, -1):    
    for j in range(0, i - 1):  
        print("*", end=' ')  
    print(" ")

输出:

Enter the number of rows: 5
* * * * *  
* * * *  
* * *  
* *  
*  

图案 - 4:打印三角金字塔

代码 -

n = int(input("Enter the number of rows: "))  
m = (2 * n) - 2  
for i in range(0, n):  
    for j in range(0, m):  
        print(end=" ")  
    m = m - 1  # decrementing m after each loop  
    for j in range(0, i + 1):  
        # printing full Triangle pyramid using stars  
        print("* ", end=' ')  
    print(" ")

输出:

Enter the number of rows: 10
                  *   
                 *  *   
                *  *  *   
               *  *  *  *   
              *  *  *  *  *   
             *  *  *  *  *  *   
            *  *  *  *  *  *  *   
           *  *  *  *  *  *  *  *   
          *  *  *  *  *  *  *  *  *   
         *  *  *  *  *  *  *  *  *  *

图案 - 5:向下的三角形图案

代码 -

rows = int(input("Enter the number of rows: "))  
  
# It is used to print space  
k = 2 * rows - 2  
# Outer loop in reverse order  
for i in range(rows, -1, -1):  
    # Inner loop will print the number of space.  
    for j in range(k, 0, -1):  
        print(end=" ")  
    k = k + 1  
    # This inner loop will print the number o stars  
    for j in range(0, i + 1):  
        print("*", end=" ")  
    print("")  

输出:

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

图案 - 6:菱形图案

代码 -

rows = int(input("Enter the number of rows: "))  
  
# It is used to print the space  
k = 2 * rows - 2  
# Outer loop to print number of rows  
for i in range(0, rows):  
    # Inner loop is used to print number of space  
    for j in range(0, k):  
        print(end=" ")  
    # Decrement in k after each iteration  
    k = k - 1  
    # This inner loop is used to print stars  
    for j in range(0, i + 1):  
        print("* ", end="")  
    print("")  
  
# Downward triangle Pyramid  
# It is used to print the space  
k = rows - 2  
# Output for downward triangle pyramid  
for i in range(rows, -1, -1):  
    # inner loop will print the spaces  
    for j in range(k, 0, -1):  
        print(end=" ")  
    # Increment in k after each iteration  
    k = k + 1  
    # This inner loop will print number of stars  
    for j in range(0, i + 1):  
        print("* ", end="")  
    print("") 

输出:

Enter the number of rows: 8
              * 
             * * 
            * * * 
           * * * * 
          * * * * * 
         * * * * * * 
        * * * * * * * 
       * * * * * * * * 
      * * * * * * * * * 
       * * * * * * * * 
        * * * * * * * 
         * * * * * * 
          * * * * * 
           * * * * 
            * * * 
             * * 
              *

图案 - 7:在单个图案中打印两个金字塔

代码 -

rows = input("Enter the number of rows: ")  
  
# Outer loop will print the number of rows  
for i in range(0, rows):  
    # This inner loop will print the stars  
    for j in range(0, i + 1):  
        print("*", end=' ')  
    # Change line after each iteration  
    print(" ")  
# For second pattern  
for i in range(rows + 1, 0, -1):  
    for j in range(0, i - 1):  
        print("*", end=' ')  
    print(" ")

输出:

Enter the number of rows: 7
*  
* *  
* * *  
* * * *  
* * * * *  
* * * * * *  
* * * * * * *  
* * * * * * *  
* * * * * *  
* * * * *  
* * * *  
* * *  
* *  
*

图案 - 8:沙漏图案

代码 -

rows = int(input("Enter the number of rows: "))  
k = rows - 2  
# This is used to print the downward pyramid  
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()  
  
# This is used to print the upward pyramid  
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()  

输出:

Enter the number of rows: 5
   * * * * * * 
    * * * * * 
     * * * * 
      * * * 
       * * 
        * 
        * 
       * * 
      * * * 
     * * * * 
   * * * * * 
  * * * * * *

我们已经讨论了使用for循环的基本图案。图案的概念取决于逻辑和for循环的正确使用。

Python中的数字图案

在本节中,我们将讨论不同类型的数字图案的几个程序。让我们逐一了解以下这些图案。

图案 - 1:数字图案

代码 -

rows = int(input("Enter the number of rows: "))  
# Outer loop will print number of rows  
for i in range(rows+1):  
    # Inner loop will print the value of i after each iteration  
    for j in range(i):  
        print(i, end=" ")  # print number  
    # line after each row to display pattern correctly  
    print(" ")

输出:

Enter the number of rows: 5
1  
2 2  
3 3 3  
4 4 4 4  
5 5 5 5 5

解释 -

在上面的代码中,我们已经打印了根据行值打印的数字。第一行打印一个数字。接下来,在第二行打印两个数字,在第三行打印三个数字,以此类推。

图案 - 2:带有数字的半金字塔图案

代码 -

rows = int(input("Enter the number of rows: "))  
  
# This will print the rows  
for i in range(1, rows+1):  
    # This will print number of column  
    for j in range(1, i + 1):  
        print(j, end=' ')  
    print("")  

输出:

Enter the number of rows: 5
1 
1 2 
1 2 3 
1 2 3 4 
1 2 3 4 5

在上面的代码中,我们在内部for循环中打印列值j。

图案 - 3:倒置金字塔图案

代码 -

rows = int(input("Enter the number of rows: 5"))  
k = 0  
# Reversed loop for downward inverted pattern  
for i in range(rows, 0, -1):  
    # Increment in k after each iteration  
    k += 1  
    for j in range(1, i + 1):  
        print(k, end=' ')  
    print()  

输出:

Enter the number of rows: 5
1 1 1 1 1 
2 2 2 2 
3 3 3 
4 4 
5

解释:

在上面的代码中,我们使用倒置循环来打印向下的倒置金字塔,其中数字在每次迭代后减小。

图案 - 4:相同数字的倒置金字塔

代码 -

rows = int(input("Enter the number of rows: "))  
# rows value assign to n variable  
n = rows  
# Download reversed loop  
for i in range(rows, 0, -1):  
    for j in range(0, i):  
        # this will print the same number  
        print(n, end=' ')  
    print() 

输出:

Enter the number of rows: 6
6 6 6 6 6 6 
6 6 6 6 6 
6 6 6 6 
6 6 6 
6 6 
6

图案 - 5:数字的降序

代码 -

rows = int(input("Enter the number of rows: "))  
# Downward loop for inverse loop  
for i in range(rows, 0, -1):  
    n = i   # assign value to n of i after each iteration  
    for j in range(0, i):  
        # print reduced value in each new line  
        print(n, end=' ')  
    print("\r")  

输出:

Enter the number of rows: 6
6 6 6 6 6 6 
5 5 5 5 5 
4 4 4 4 
3 3 3 
2 2 
1

图案 - 6:以模式打印1到10的数字

current_Number = 1  
stop = 2  
rows = 3  # Number of rows to print numbers  
  
for i in range(rows):  
    for j in range(1, stop):  
        print(current_Number, end=' ')  
        current_Number += 1  
    print("")  
    stop += 2

输出:

1 
2 3 4 
5 6 7 8 9

图案 - 7:从10到1的反向模式

代码 -

rows = int(input("Enter the number of rows: "))  
for i in range(0, rows + 1):  
    # inner loop for decrement in i values  
    for j in range(rows - i, 0, -1):  
        print(j, end=' ')  
    print()

输出:

Enter the number of rows: 6
6 5 4 3 2 1 
5 4 3 2 1 
4 3 2 1 
3 2 1 
2 1 
1

图案 - 8:斜向上的数字图案

代码 -

rows = int(input("Enter the number of rows: "))  
i = 1  
# outer file loop to print number of rows  
while i <= rows:  
    j = 1  
    # Check the column after each iteration  
    while j <= i:  
        # print odd values  
        print((i * 2 - 1), end=" ")  
        j = j + 1  
    i = i + 1  
    print() 

输出:

Enter the number of rows: 5
1 
3 3 
5 5 5 
7 7 7 7 
9 9 9 9 9

图案 - 9:斜向下的数字图案

代码 -

rows = int(input("Enter the number of rows: "))  
for i in range(1, rows + 1):  
    for j in range(1, rows + 1):  
        # Check condition if value of j is smaller or equal than  
        # the j then print i otherwise print j  
        if j <= i:  
            print(i, end=' ')  
        else:  
            print(j, end=' ')  
    print()

输出:

Enter the number of rows: 5
1 2 3 4 5 
2 2 3 4 5 
3 3 3 4 5 
4 4 4 4 5 
5 5 5 5 5

图案 - 10:数字的斜线

代码 -

rows = int(input("Enter the number of rows: "))  
for i in range(1, rows):  
    for j in range(1, i + 1):  
        # It prints multiplication or row and column  
        print(i * j, end='  ')  
    print()  

输出:

Enter the number of rows: 8
1  
2  4  
3  6  9  
4  8  12  16  
5  10  15  20  25  
6  12  18  24  30  36  
7  14  21  28  35  42  49

这些示例演示了在Python中打印数字图案的不同方法。您可以根据需求选择合适的图案和程序。

标签: Tkinter安装, Tkinter库, Tkinter入门, Tkinter学习, Tkinter入门教程, Tkinter, Tkinter进阶, Tkinter指南, Tkinter学习指南, Tkinter进阶教程, Tkinter编程, Tki教程