当前位置:首页 > 编程技术 > 正文内容

以蛇形模式打印矩阵的Python程序

yc8881年前 (2023-02-22)编程技术450

以蛇形模式打印矩阵的Python程序

在本文中,我们将学习一个以蛇形模式打印矩阵的 python 程序。

假设我们取了 n x n 矩阵。我们现在将使用下面提到的方法以蛇形模式打印输入矩阵。

使用的方法

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

  • 使用嵌套的 for 循环

  • 使用切片反转交替行

直觉

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

方法 1: 使用嵌套的 for 循环

算法(步骤)

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

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

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

  • 创建一个函数 printSnakePattern(),用于通过接受输入矩阵作为参数来打印蛇模式的矩阵。

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

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

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

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

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

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

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

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

以下程序使用嵌套的 for 循环以蛇模式打印输入矩阵 -

# initializing the number of rows of the matrix rows = 4 # initializing the number of columns of the matrix columns = 4 # creating a function for printing the matrix in # snake pattern accepting the input matrix as an argument. def printSnakePattern(inputMatrix):    # making the rows and columns variables global       global rows, columns       # traversing through the rows of a matrix       for m in range(rows):          # checking whether the current row number is even          if m % 2 == 0:             # traversing through all the columns of the current row                for n in range(columns):                   # printing from left to right if the current row is even                   print(inputMatrix[m][n], end=" ")          # Else, printing from right to left if the current row is even          else:             # traversing from the end of the columns                for n in range(columns - 1, -1, -1):                   print(inputMatrix[m][n], end=" ") # input matrix inputMatrix = [[3, 4, 5, 6],                [10, 40, 60, 80],                [1, 9, 7, 8],                [40, 20, 14, 15]] print("The Given Matrix is :") print(inputMatrix) # calling the above-defined printSnakePattern function # by passing the input matrix as an argument. print("Snake Pattern of the given Matrix is:") printSnakePattern(inputMatrix)

输出

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

The Given Matrix is : [[3, 4, 5, 6], [10, 40, 60, 80], [1, 9, 7, 8], [40, 20, 14, 15]] Snake Pattern of the given Matrix is: 3 4 5 6 80 60 40 10 1 9 7 8 15 14 20 40

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

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

语法

[start:stop:step]

参数

  • 开始 − 索引 从哪里开始

  • 结束 − 结束索引

  • 步长 − 之间要采取的跳跃次数,即步长

以下程序使用切片以蛇形模式打印输入矩阵 -

# input matrix inputMatrix = [[3, 4, 5, 6],                [10, 40, 60, 80],                [1, 9, 7, 8],                [40, 20, 14, 15]] # initializing the number of rows of a matrix rows = 4 # initializing the number of columns of a matrix columns = 4 # creating a function for printing the matrix in # snake pattern accepting the input matrix as an argument. def printSnakePattern(inputMatrix):    # making the rows and columns variables global       global rows, columns       # traversing through the rows of a matrix       for m in range(rows):          # checking whether the current row number is even          if m % 2 != 0:             # Reversing the row using reverse slicing             inputMatrix[m] = inputMatrix[m][::-1]       # traversing through the rows of a matrix       for m in range(rows):          # traversing through all the columns of the current row          for n in range(columns):             # printing the corresponding element                print(inputMatrix[m][n], end=' ') # input matrix inputMatrix = [[3, 4, 5, 6],                [10, 40, 60, 80],                [1, 9, 7, 8],                [40, 20, 14, 15]] print("The Given Matrix is :") print(inputMatrix) # calling the above-defined printSnakePattern function # by passing the input matrix as an argument. print("Snake Pattern of the given Matrix is:") printSnakePattern(inputMatrix)

输出

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

The Given Matrix is : [[3, 4, 5, 6], [10, 40, 60, 80], [1, 9, 7, 8], [40, 20, 14, 15]] The Snake Pattern of the given Matrix is: 3 4 5 6 80 60 40 10 1 9 7 8 15 14 20 40

结论

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


本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!


从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!


本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。


本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。


若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。


本文链接:https://www.10zhan.com/biancheng/10588.html

标签: Python
分享给朋友:

“以蛇形模式打印矩阵的Python程序” 的相关文章

【说站】Thymeleaf报错Error resolving template “XXX”

【说站】Thymeleaf报错Error resolving template “XXX”

修改了一下开源项目的目录结构访问突然报错Error resolving template “XXX”可能原因有如下三种:第一种可能:原因:在使用springboot的过程中,如果使用thymeleaf...

【说站】用一句话就可以去除宝塔面板操作上的二次验证

【说站】用一句话就可以去除宝塔面板操作上的二次验证

用过宝塔的朋友应该都会发现,现在宝塔面板有些鸡肋的功能,删除文件、删除数据库、删除站点等操作都需要做计算题!不仅加了几秒的延时等待,还无法跳过!这时候就会有朋友在想,如何去除宝塔面板的二次验证,此篇文...

【说站】利用Webhook实现Java项目自动化部署

【说站】利用Webhook实现Java项目自动化部署

用webhook就能实现Java项目自动部署,其实原理很简单。费话不多说,直接往下看教程。1. 创建gitee仓库并初始化2. 在linux安装git3. 在宝塔的软件的商店里下载Webhook4....

【说站】电脑安装MySQL时出现starting the server失败原因及解决方案

【说站】电脑安装MySQL时出现starting the server失败原因及解决方案

今天在安装MySQL时出现starting the server失败,经过查询分析得出以下结论,记录一下操作步骤。原因分析:如果电脑是第一次安装MySQL,一般不会出现这样的报错。如下图所示。star...

【说站】vagrant实现linux虚拟机的安装并配置网络

【说站】vagrant实现linux虚拟机的安装并配置网络

一、VirtualBox的下载和安装1、下载VirtualBox官网下载:https://www.virtualbox.org/wiki/Downloads我的电脑是Windows的,所以下载Wind...

【说站】C#在PDF中添加墨迹注释Ink Annotation的步骤详解

【说站】C#在PDF中添加墨迹注释Ink Annotation的步骤详解

PDF中的墨迹注释(Ink Annotation),表现为徒手涂鸦式的形状;该类型的注释,可任意指定形状顶点的位置及个数,通过指定的顶点,程序将连接各点绘制成平滑的曲线。下面,通过C#程序代码介绍如何...