用于以蛇形图案打印矩阵的 Python 程序

pythonserver side programmingprogramming更新于 2024/1/4 12:54:00

在本文中,我们将学习一个用于以蛇形图案打印矩阵的 Python 程序。

假设我们已经采用了 n x n 矩阵。现在,我们将使用下面提到的方法以蛇形图案打印输入矩阵。

使用的方法

以下是用于完成此任务的各种方法 -

  • 使用嵌套 for 循环

  • 使用切片反转交替行

直觉 

我们将遍历矩阵的所有行。对于每一行,我们现在将检查它是偶数还是奇数。如果行为偶数,则从左到右打印矩阵,否则从右到左打印矩阵。

方法 1:使用嵌套 for 循环

算法(步骤)

以下是执行所需任务所要遵循的算法/步骤。 −

  • 创建一个变量来存储矩阵的行数。

  • 创建另一个变量来存储矩阵的列数。

  • 创建一个函数 printSnakePattern(),通过接受输入矩阵作为参数,以蛇形图案打印矩阵。

  • 使用 global 关键字使行和列变量成为全局变量。

  • 使用 for 循环 遍历矩阵的行。

  • 使用 if 条件 语句检查当前行数是否为偶数。

  • 如果条件为,则使用另一个 嵌套 for 循环 遍历当前行的所有列true。

  • 如果当前行为偶数,则从左到右打印矩阵行。

  • 否则,如果当前行为奇数,则从右到左打印矩阵行。

  • 创建一个变量来存储输入矩阵并打印给定的矩阵。

  • 通过将输入矩阵作为参数传递,调用上面定义的 printSnakePattern() 函数。

示例

以下程序使用嵌套 for 循环以蛇形图案打印输入矩阵 -

# 初始化矩阵的行数
rows = 4
# 初始化矩阵的列数
columns = 4
# 创建一个用于打印的函数矩阵输入
# 蛇形图案接受输入矩阵作为参数。
def printSnakePattern(inputMatrix):
   # 使行和列变量成为全局变量
      global rows, columns
      # 遍历矩阵的行
      for m in range(rows):
         # 检查当前行号是否为偶数
         if m % 2 == 0:
            # 遍历当前行的所有列
               for n in range(columns):
                  # 如果当前行为偶数,则从左到右打印
                  print(inputMatrix[m][n], end=" ")

         # 否则,如果当前行为偶数,则从右向左打印
         else:
            # 从列末尾遍历
               for n in range(columns - 1, -1, -1):
                  print(inputMatrix[m][n], end=" ")
# 输入矩阵
inputMatrix = [[3, 4, 5, 6],
               [10, 40, 60, 80],
               [1, 9, 7, 8],
               [40, 20, 14, 15]]
print("给定矩阵是:")
print(inputMatrix)
# 通过将输入矩阵作为参数传递,调用上面定义的 printSnakePattern 函数
#。
print("给定矩阵的蛇形图案是:")
printSnakePattern(inputMatrix)

输出

执行时,上述程序将生成以下输出 -

给定矩阵为:
[[3, 4, 5, 6], [10, 40, 60, 80], [1, 9, 7, 8], [40, 20, 14, 15]]
给定矩阵的蛇形图案为:
3 4 5 6 80 60 40 10 1 9 7 8 15 14 20 40

方法 2:使用切片反转交替行

切片是一种常见的做法,也是程序员最常用来有效解决问题的做法。考虑一个 Python 列表。您必须对列表进行切片才能访问一系列列表元素。使用colon(:(一个简单的切片运算符)是实现此目的的一种方法。

语法

[start:stop:step]

参数

  • start − 从哪里开始的索引

  • end − 结束索引

  • step − 中间要进行的跳跃次数,即步长

示例

以下程序使用切片以蛇形图案打印输入矩阵 −

# 输入矩阵
inputMatrix = [[3, 4, 5, 6],
               [10, 40, 60, 80],
               [1, 9, 7, 8],
               [40, 20, 14, 15]]
# 初始化矩阵的行数
rows = 4
# 初始化矩阵的列数
columns = 4
# 创建一个用于打印矩阵的函数
# 蛇形图案接受输入矩阵作为参数。
def printSnakePattern(inputMatrix):
   # 使行和列变量成为全局变量
      global rows, columns
      # 遍历矩阵的行
	  for m in range(rows):
		 # 检查当前行号是否为偶数
         if m % 2 != 0:
            # 使用反向切片来反转行
            inputMatrix[m] = inputMatrix[m][::-1]

      # 遍历矩阵的行
      for m in range(rows):
         # 遍历当前行的所有列
         for n in range(columns):
            # 打印相应元素
               print(inputMatrix[m][n], end=' ')
# 输入矩阵
inputMatrix = [[3, 4, 5, 6],
               [10, 40, 60, 80],
               [1, 9, 7, 8],
               [40, 20, 14, 15]]
print("给定矩阵是:")
print(inputMatrix)
# 通过将输入矩阵作为参数传递,调用上面定义的 printSnakePattern 函数
#。
print("给定矩阵的蛇形图案为:")
printSnakePattern(inputMatrix)

输出

执行时,上述程序将生成以下输出 -

给定矩阵为:
[[3, 4, 5, 6], [10, 40, 60, 80], [1, 9, 7, 8], [40, 20, 14, 15]]
给定矩阵的蛇形图案为:
3 4 5 6 80 60 40 10 1 9 7 8 15 14 20 40

结论

在本文中,我们学习了如何使用两种不同的方法以蛇形形式打印给定矩阵。我们学习了如何使用 global 关键字使变量成为全局变量。我们还学习了如何通过反向切片来反转任何可迭代对象,包括列表、元组、字符串等。


相关文章