Python教程-如何在Python中打印图案
在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中打印数字图案的不同方法。您可以根据需求选择合适的图案和程序。