Dúvida básica sobre listas [RESOLVIDO]

1. Dúvida básica sobre listas [RESOLVIDO]

Raphael Henrique
RaphaelHAS

(usa Outra)

Enviado em 26/08/2016 - 17:39h

Olá pessoal, possuo o seguinte código


#coding: utf-8

lista = list(range(2))


for i in range(2):
lista[i] = raw_input("Type a number ")

cont =0

for i in lista:
print(i)

for i in lista:
if(i < 0):
cont+=1


print("Exists " + str(cont) + " negative numbers in this list")



Ele preenche uma lista com valores inteiros, e depois conta quanto elementos negativos essa lista possui. Porém o "if" do segundo "for" nunca é efetuado, não importa qual valor seja adicionado na lista, alguém poderia me ajudar com esse problema?


  


2. MELHOR RESPOSTA

Lisandro Guerra
Lisandro

(usa Arch Linux)

Enviado em 26/08/2016 - 21:49h

Mais próximo do teu código inicial ficaria assim:


lista = list() #ou pode ser também lista = []

for i in range(2):
lista.append(int(input("Type a number "))) # como input por padrão é str passamos para int na entrada

cont =0 # abre um contador zerado-

for i in lista:
print(i) # imprime cada elemento da lista
if(i < 0): # verifica se o elemento da lista é negativo
cont+=1 # se for incrementa o contador


print("Exists " + str(cont) + " negative numbers in this list") # imprime as informações


3. Re: Dúvida básica sobre listas [RESOLVIDO]

Lisandro Guerra
Lisandro

(usa Arch Linux)

Enviado em 26/08/2016 - 19:59h

Olá.
Seu código está me confundindo.
Vamos ver linha a linha:


#coding: utf-8

lista = list(range(2)) # aqui cria uma lista e gera dois valores para dentro dela. o resultado é lista=[0, 1]


for i in range(2): # aqui repete fazendo o i valer 0 no primeiro ciclo e 1 no segundo ciclo
lista[i] = raw_input("Type a number ") # agora usa o i como índice para substituir usando o input o valor dos elementos da lista. alista que era [0, 1] passa ser [valor de input1, valor de input2]

cont =0 # abre um contador zerado

for i in lista:
print(i) # imprime cada elemento da lista

for i in lista:
if(i < 0): # verifica se o elemento da lista é negativo
cont+=1 # se for incrementa o contador


print("Exists " + str(cont) + " negative numbers in this list") # imprime as informações



Bem o range vai preencher a lista com valores inteiros sequenciais positivos partindo de zero [0,1,2,3,4,...]
então os únicos valores negativos seriam os que tu entrares manualmente no input.
Outra coisa que não ficou bem clara para mim é se está usando python 2 ou 3, pois raw_input é do 2 , mas a sintaxe do print como função é do 3.
Dá pra dar um aboa refatorada no teu código, começando em colocar os 2 últimos for que são iguais em apenas 1

Talvez se tu disser onde quer chegar fique mais fácil de ajudar.
Abraço


4. Esclareceu bastante!

Raphael Henrique
RaphaelHAS

(usa Outra)

Enviado em 26/08/2016 - 20:35h

Lisandro escreveu:

Olá.
Seu código está me confundindo.
Vamos ver linha a linha:


#coding: utf-8

lista = list(range(2)) # aqui cria uma lista e gera dois valores para dentro dela. o resultado é lista=[0, 1]


for i in range(2): # aqui repete fazendo o i valer 0 no primeiro ciclo e 1 no segundo ciclo
lista[i] = raw_input("Type a number ") # agora usa o i como índice para substituir usando o input o valor dos elementos da lista. alista que era [0, 1] passa ser [valor de input1, valor de input2]

cont =0 # abre um contador zerado

for i in lista:
print(i) # imprime cada elemento da lista

for i in lista:
if(i < 0): # verifica se o elemento da lista é negativo
cont+=1 # se for incrementa o contador


print("Exists " + str(cont) + " negative numbers in this list") # imprime as informações



Bem o range vai preencher a lista com valores inteiros sequenciais positivos partindo de zero [0,1,2,3,4,...]
então os únicos valores negativos seriam os que tu entrares manualmente no input.
Outra coisa que não ficou bem clara para mim é se está usando python 2 ou 3, pois raw_input é do 2 , mas a sintaxe do print como função é do 3.
Dá pra dar um aboa refatorada no teu código, começando em colocar os 2 últimos for que são iguais em apenas 1

Talvez se tu disser onde quer chegar fique mais fácil de ajudar.
Abraço


Caro Lisandro,

Pensei que esse "lista = list(range(2))" me criaria uma lista de tamanho 2, e não que a lista seria preenchida por números sequenciais. Então vou tentar criar uma lista vazia para só depois ser preenchida pelo teclado. Estou utilizando o Python 3, e aprendendo agora, por isso meu código pode estar um pouco confuso.

Na verdade eu programo em c/c++, então estou tentando passar os programas básicos que possuo para python, simplesmente por treino. Irei tentar consertar esse algoritmo conforme suas dicas, entretanto, você teria alguma boa ideia para que esse algoritmo funcionasse?


5. Re: Dúvida básica sobre listas [RESOLVIDO]

Lisandro Guerra
Lisandro

(usa Arch Linux)

Enviado em 26/08/2016 - 21:33h

RaphaelHAS escreveu:

Lisandro escreveu:

Olá.
Seu código está me confundindo.
Vamos ver linha a linha:


#coding: utf-8

lista = list(range(2)) # aqui cria uma lista e gera dois valores para dentro dela. o resultado é lista=[0, 1]


for i in range(2): # aqui repete fazendo o i valer 0 no primeiro ciclo e 1 no segundo ciclo
lista[i] = raw_input("Type a number ") # agora usa o i como índice para substituir usando o input o valor dos elementos da lista. alista que era [0, 1] passa ser [valor de input1, valor de input2]

cont =0 # abre um contador zerado

for i in lista:
print(i) # imprime cada elemento da lista

for i in lista:
if(i < 0): # verifica se o elemento da lista é negativo
cont+=1 # se for incrementa o contador


print("Exists " + str(cont) + " negative numbers in this list") # imprime as informações



Bem o range vai preencher a lista com valores inteiros sequenciais positivos partindo de zero [0,1,2,3,4,...]
então os únicos valores negativos seriam os que tu entrares manualmente no input.
Outra coisa que não ficou bem clara para mim é se está usando python 2 ou 3, pois raw_input é do 2 , mas a sintaxe do print como função é do 3.
Dá pra dar um aboa refatorada no teu código, começando em colocar os 2 últimos for que são iguais em apenas 1

Talvez se tu disser onde quer chegar fique mais fácil de ajudar.
Abraço


Caro Lisandro,

Pensei que esse "lista = list(range(2))" me criaria uma lista de tamanho 2, e não que a lista seria preenchida por números sequenciais. Então vou tentar criar uma lista vazia para só depois ser preenchida pelo teclado. Estou utilizando o Python 3, e aprendendo agora, por isso meu código pode estar um pouco confuso.

Na verdade eu programo em c/c++, então estou tentando passar os programas básicos que possuo para python, simplesmente por treino. Irei tentar consertar esse algoritmo conforme suas dicas, entretanto, você teria alguma boa ideia para que esse algoritmo funcionasse?


OK.
Aqui um código possível:


lista = [int(input("Type a number ")) for i in range(2)]
cont =0
for i in lista:
print(i)
if i < 0:
cont+=1
print("Exists " + str(cont) + " negative numbers in this list")



6. Resolvido

Raphael Henrique
RaphaelHAS

(usa Outra)

Enviado em 26/08/2016 - 21:56h

Lisandro escreveu:

Mais próximo do teu código inicial ficaria assim:


lista = list() #ou pode ser também lista = []

for i in range(2):
lista.append(int(input("Type a number "))) # como input por padrão é str passamos para int na entrada

cont =0 # abre um contador zerado-

for i in lista:
print(i) # imprime cada elemento da lista
if(i < 0): # verifica se o elemento da lista é negativo
cont+=1 # se for incrementa o contador


print("Exists " + str(cont) + " negative numbers in this list") # imprime as informações


Cara você me ajudou muito! Posso continuar meus estudos agora, e com certeza você será avaliado positivamente!
Obrigado novamente.


7. Re: Dúvida básica sobre listas [RESOLVIDO]

Lisandro Guerra
Lisandro

(usa Arch Linux)

Enviado em 26/08/2016 - 22:03h

RaphaelHAS escreveu:

Lisandro escreveu:

Mais próximo do teu código inicial ficaria assim:


lista = list() #ou pode ser também lista = []

for i in range(2):
lista.append(int(input("Type a number "))) # como input por padrão é str passamos para int na entrada

cont =0 # abre um contador zerado-

for i in lista:
print(i) # imprime cada elemento da lista
if(i < 0): # verifica se o elemento da lista é negativo
cont+=1 # se for incrementa o contador


print("Exists " + str(cont) + " negative numbers in this list") # imprime as informações


Cara você me ajudou muito! Posso continuar meus estudos agora, e com certeza você será avaliado positivamente!
Obrigado novamente.


Disponha. Agora que já nos conhecemos fica mais tranquilo ajudar.
Marque uma das respostas como melhor resposta do tópico para que outras pessoas vejam logo qual foi a solução.
Abraço






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts