用于以蛇形图案打印矩阵的 Python 程序
在本文中,我们将学习一个用于以蛇形图案打印矩阵的 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 关键字使变量成为全局变量。我们还学习了如何通过反向切片来反转任何可迭代对象,包括列表、元组、字符串等。