Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida com listas


maxsantos

Pergunta

Olá a todos. Estou começando a aprender programação e escolhi o python para começar. Estava tudo indo muito bem até que me deparei com listas. Estou com um erro que não sei bem o que tá acontecendo.

O objetivo do programa é muito simples, ler 20 números inteiros e separar os pares dos ímpares, mas o meu código está dando esse erro: IndexError: list assignment index out of range. E não sei como resolver.

Quem puder dar uma olhada e ajudar, agradeço muito.

#Faça um Programa que leia 20 números inteiros e armazene-os num vetor.
#Armazene os números pares no vetor PAR e os números IMPARES no vetor impar.
#Imprima os três vetores.

numero = []
par = []
impar = []

for i in range(20):
 numero = int(input("Digite um número: "))

 if (numero % 2) == 0:
  par += numero
 else:
  impar += numero

print(numero)
print(par)
print(impar)
 

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Olá!


Olha para mim o único erro que apareceu foi esse:

Traceback (most recent call last):
  File "/home/felipe/forum - problema com lista.py", line 16, in <module>
    impar += numero
TypeError: 'int' object is not iterable


Basicamente eis o que esta acontecendo:

Dentro do laço for você esta chamando a sua variável numero, que é uma lista, e esta colocando para ela o valor inteiro que o usuário digitar, o problema é que em Python o tipo de uma variável muda conforme o valor que ela deve armazenar.

Ou seja, a variável numero é declarada como lista, pois você a qualifica como tal número = [], porem nesta linha: 

numero = int ( input ( "Digite um número: " ) ) 

a variável numero não será mais uma lista e sim um inteiro, pois é isso que ela armazenará, então primeiro precisamos definir uma única variável que sempre será do tipo inteira e que apenas receberá os valores introduzidos pelo usuário, ex: 

digito = int ( input ( "Digite um número: " ) )

Agora vem outro problema, quando você quer introduzir ou retirar valores de dentro de uma lista, o ideal é que você trabalhe com métodos especialmente feitos para a tarefa, sendo assim existem 2 métodos essenciais:

.append () - que adiciona um elemento a uma lista

.remove() - que remove um elemento de uma lista

 

Sendo assim o seu novo código será:

numero = []
par = []
impar = []

for i in range ( 4 ):
    
    digito = int ( input ( "Digite um número: " ) )
    
    numero.append ( digito )
    
    if ( digito % 2 ) == 0:
        par.append ( digito )
    else:
        impar.append ( digito )

print ( numero )
print ( par )
print ( impar )

 

Vou deixar um Link de um canal no YouTube muito bom que contem excelentes Video aulas sobre Python:

 

Ignorância zero: https://www.youtube.com/channel/UCmjj41YfcaCpZIkU-oqVIIw

 

 

Ubuntu 14.04 LTS   -   Python 2.7.6   -   Python 3.4.3

 

Esero Ter AJudado ! ! !

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...