# Python program to print matrix in a snake pattern

In this article, we will learn a python program to print a matrix in a snake pattern.

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 −

• Using the nested for loop

• Reversing Alternate Rows Using Slicing

### Intuition

We will iterate through all the rows of a matrix. For each row, we will now check whether it is even or odd. If the row is even, then will print the matrix from left to right else we will print the matrix from right to left.

## Method 1: Using the nested for loop

### Algorithm (Steps)

Following are the Algorithms/steps to be followed to perform the desired task. −

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

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

• Creating a function printSnakePattern() for printing the matrix in snake pattern by accepting the input matrix as an argument.

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

• Use the for loop to traverse through the rows of a matrix.

• Use the if conditional statement to check whether the current row number is even.

• 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.

• Else, print the matrix row from right to left if the current row is odd.

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

• Call the above-defined printSnakePattern() function by passing the input matrix as an argument.

### Example

The following program prints an input matrix in a snake pattern using nested for loop −

# 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)


### Output

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


## Method 2: Reversing Alternate Rows Using Slicing

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]


### Parameters

• start − index from where to start

• end − ending index

• step − numbers of jumps to take in between i.e stepsize

### Example

The following program prints an input matrix in a snake pattern using slicing −

# 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)


### Output

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.