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

WBOY
发布: 2023-08-20 10:49:09
转载
1001人浏览过

python程序以蛇形模式打印矩阵

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

Assume we have taken the n x n matrix. We will now print the input matrix in a snake pattern using the below-mentioned methods.

Methods Used

The following are the various methods used to accomplish this task −

直觉 

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

Method 1: Using the nested for loop

算法(步骤)

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

  • Create a variable to store the number of rows of a matrix.

  • Create another variable to store the number of columns of a matrix.

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

  • Use the global keyword to make the rows and columns variables global.

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

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

  • Use another nested for loop to traverse through all the columns of the current row if the condition is true.

  • Print the matrix row from left to right if the current row is even.

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

  • Create a variable to store the input matrix and print the given matrix.

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

Example

以下程序使用嵌套的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)
登录后复制

输出

On executing, the above program will generate the following output −

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:使用切片反转交替行

slicing is a frequent practice and the one that programmers utilize the most to solve problems effectively. Consider a Python list. You must slice a list to access a range of list elements. The use of the colon(:), a simple slicing operator, is one method for accomplishing this.

Syntax

[start:stop:step]
登录后复制

参数

  • start − 从哪里开始的索引

  • end − ending index

  • 步骤 − 在i之间要跳跃的次数,即步长

Example

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

# 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)
登录后复制

输出

On execution, the above program will generate the following output −

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 
登录后复制

Conclusion

In this article, we learned how to print the given matrix in snake form using two different methods. We learned how to use the global keyword to make variables global. We also learned how to reverse any iterable, including a list, tuple, string, etc. via reverse slicing.

以上就是Python程序以蛇形模式打印矩阵的详细内容,更多请关注php中文网其它相关文章!

全能打印神器
全能打印神器

全能打印神器是一款非常好用的打印软件,可以在电脑、手机、平板电脑等设备上使用。支持无线打印和云打印,操作非常简单,使用起来也非常方便,有需要的小伙伴快来保存下载体验吧!

下载
来源:tutorialspoint网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号