Olá a todos, estou tendo esse erro: “List index out of range”. Tenho um menu e quando seleciono a opcao que vai ler esse código dá erro…
Código:
def arraysort(array):
for n in range(len(array)):
if array[n]>array[n+1]:
guardar = array[n+1]
array[n+1] = array[n]
array[n] = array[n+1]
array[n] = guardar
Código do menu para aceder ao arraysort(array):
elif menuoption==8:
print("\n\n===== ARRAY EM ORDEM CRESCENTE =====")
arraysort(array)
A mensagem diz que você está acessando um elemento da lista que nao existe.
Em que linha dá o erro?
Já tentou ver os valores do índice na linha que dá erro?
Desde já, obrigado pela sua resposta. Isto é o que acontece após eu fazer o array e selecionar a opção para ordenar o array.
out of range significa fora de alcançe, mas não sei o que quer dizer na línguagem de programação…
( o ultimo erro que é dado na consola é o que interessa )
Cuidado com isso:
array[n+1]
Vc precisa ter em mente que uma hora o array vai chegar no final e vai somar o final + 1 ou seja, uma posição que não existe no array, nessas horas vc testa junto se a proxima posição chegou no final…
total = len(array)
for n in range(total):
aindaTemProximo = (n + 1 < total)
print(aindaTemProximo) //True ou False
if aindaTemProximo and array[n]>array[n+1]:
...
Algo nesse sentido, vai testando ainda deixei o print pra vc acompanhar o teste, uma hora ele vai ser False, isso quer dizer que chegou no final pegou? sucesso!
Obrigado, faz sentido! Irei testar amanha.