Ir para conteúdo
Fórum Script Brasil

vssdb

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre vssdb

vssdb's Achievements

0

Reputação

  1. Pessoal, meu exercício de Python é modificar o zero de lugar, permutando-o com algum elemento, acima, abaixo ou dos lados, dada determinada matriz. Dado, por exemplo, a matriz inicial: [1 1 1 2 3 0 3 3 3 ], transformá-la em uma [1 1 0 2 3 1 3 3 3]. Para fazer isso, já criei os comando c, b, d, e(Respectivamente cima, baixo, direita, esquerda) com a finalidade de efetuar a troca nas diferentes posições, no entanto, só o c e e funcionam. Qual o erro do meu código? Obs.: - A listamov contém os movimentos que o usuário digita no computador, pois a ideia é fazer uma sequência de movimentos. A listamov pode ser, por exemplo:[c,c,d,d] - n é o número de linhas, que é igual ao número de colunas da lista - lin e col são meros contadores para o for ir verificando a matriz por completo - tabIn é a matriz inicial, que vai ser alterada - Já foram retirados os casos em que a troca é impossível**** for c in listamov: if c == 'c': for lin in range(n): for col in range(n): if tabIn[lin][col] == 0: tabIn[lin][col] = tabIn[lin-1][col] tabIn[lin-1][col]=0 if c == 'b': for lin in range(n): for col in range(n): if tabIn[lin][col] == 0: tabIn[lin][col] = tabIn[lin + 1][col] tabIn[lin + 1][col] = 0 if c == 'e': for lin in range(n): for col in range(n): if tabIn[lin][col] == 0: tabIn[lin][col] = tabIn[lin][col-1] tabIn[lin][col-1]=0 if c == 'd': for lin in range(n): for col in range(n): if tabIn[lin][col] == 0: tabIn[lin][col]=tabIn[lin][col+1] tabIn[lin][col+1]=0 O erro que dá é do tipo: Traceback (most recent call last): File "C:/Users/987BCD/PycharmProjects/JKIV/PR3.py", line 100, in <module> tabIn[lin][col] = tabIn[lin + 1][col] IndexError: list index out of range Process finished with exit code 1
×
×
  • Criar Novo...