- Python Basic Tutorial
- Python - Home
- Python - Overview
- Python - Environment Setup
- Python - Basic Syntax
- Python - Comments
- Python - Variables
- Python - Data Types
- Python - Operators
- Python - Decision Making
- Python - Loops
- Python - Numbers
- Python - Strings
- Python - Lists
- Python - Tuples
- Python - Dictionary
- Python - Date & Time
- Python - Functions
- Python - Modules
- Python - Files I/O
- Python - Exceptions

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

- Related Articles
- Print matrix in snake pattern in C Programming.
- Print matrix in snake pattern from the last column in C Programming.
- Program to print a matrix in Diagonal Pattern.
- Swift Program to Print Diagonal Matrix Pattern
- Print numbers in matrix diagonal pattern in C Program.
- Print matrix in diagonal pattern
- Python Program to print the pattern ‘G’
- Python Program to Print Matrix in Z form
- Python Program to Print an Inverted Star Pattern
- Python program to print rangoli pattern using alphabets
- Print lower triangular matrix pattern from given array in C Program.
- Python Program to Print an Identity Matrix
- Program to print a rectangle pattern in C++
- Print concentric rectangular pattern in a 2d matrix in C++
- How to print pattern in Python?