Programa Python para imprimir matriz em um padrão de cobra
Neste artigo, aprenderemos um programa python para imprimir uma matriz em um padrão de cobra.
Suponha que pegamos a matriz n x n. Agora imprimiremos a matriz de entrada em um padrão de cobra usando os métodos mencionados abaixo.
Métodos usados
A seguir estão os vários métodos usados para realizar esta tarefa -
Usando o loop for aninhado
Invertendo linhas alternativas usando fatiamento
Intuição
Iremos iterar por todas as linhas de uma matriz. Para cada linha, verificaremos agora se é par ou ímpar. Se a linha for par, imprimiremos a matriz da esquerda para a direita, caso contrário imprimiremos a matriz da direita para a esquerda.
Método 1: usando o loop for aninhado
Algoritmo (etapas)
A seguir estão os algoritmos/etapas a serem seguidos para realizar a tarefa desejada. -
Crie uma variável para armazenar o número de linhas de uma matriz.
Crie outra variável para armazenar o número de colunas de uma matriz.
Criando uma função printSnakePattern() para imprimir a matriz em padrão cobra aceitando a matriz de entrada como argumento.
Use a palavra-chave global para tornar globais as variáveis de linhas e colunas.
Use o loop for para percorrer as linhas de uma matriz.
Use a instrução if condicional para verificar se o número da linha atual é par.
Use outro loop for aninhado para percorrer todas as colunas da linha atual se a condição for verdadeira.
Imprima a linha da matriz da esquerda para a direita se a linha atual for par.
-
Caso contrário, imprima a linha da matriz da direita para a esquerda se a linha atual for ímpar.
Crie uma variável para armazenar a matriz de entrada e imprima a matriz fornecida.
Chame a função printSnakePattern() definida acima, passando a matriz de entrada como argumento.
Exemplo
O programa a seguir imprime uma matriz de entrada em um padrão de cobra usando loop for aninhado -
# 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)
Saída
Ao ser executado, o programa acima irá gerar a seguinte saída -
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
Método 2: inverter linhas alternativas usando fatiamento
slicing é uma prática frequente e aquela que os programadores mais utilizam para resolver problemas de forma eficaz. Considere uma lista Python. Você deve dividir uma lista para acessar um intervalo de elementos da lista. O uso de dois pontos(:), um operador simples de fatiamento, é um método para fazer isso.
Sintaxe
[start:stop:step]
Parâmetros
start - índice de onde começar
end - índice final
step - número de saltos a serem executados, ou seja, tamanho do passo
Exemplo
O programa a seguir imprime uma matriz de entrada em um padrão de cobra usando fatiamento -
# 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)
Saída
Na execução, o programa acima irá gerar a seguinte saída -
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
Conclusão
Neste artigo, aprendemos como imprimir a matriz fornecida em forma de cobra usando dois métodos diferentes. Aprendemos como usar a palavra-chave global para tornar variáveis globais. Também aprendemos como reverter qualquer iterável, incluindo uma lista, tupla, string, etc., por meio do fatiamento reverso.