Autor Tópico: python duvida !  (Lida 10020 vezes)

Offline biohazard

  • Usuário Ubuntu
  • *
  • Mensagens: 523
  • <thug life>
    • Ver perfil
python duvida !
« Online: 20 de Outubro de 2005, 17:24 »
Código: [Selecionar]
# Escrever um algoritmo que leia um vetor com N numeros e substitua todos os
# valores iguais a 10 por 0, em seguida, imprima o vetor resultante.

vetor = [];
n= int(raw_input("Digite o numero de posicoes do vetor :"));
i = 0;
j= 0;
while ( i < n):
    num = float(raw_input("Digite o numero :"));
    vetor.append(num); # Adiciona na ultima posicao do vetor EX : [1,2,3,4] digitou 5 --> [1,2,3,4,5]
    if (vetor[j] == 10):
        vetor[j] = 0;
        j = j +1;
    i = i + 1;
print vetor;


quando executo por exemplo sai :

Código: [Selecionar]
Digite o numero de posicoes do vetor :3
Digite o numero :-5
Digite o numero :-5
Digite o numero :10
[-5.0, -5.0, 10.0]


pq que nao ta trocando 10 por 0 ?
Arch Linux Overlord
Kernel 2.6.25-ARCH

Offline eggx.geo

  • Usuário Ubuntu
  • *
  • Mensagens: 222
    • Ver perfil
python duvida !
« Resposta #1 Online: 20 de Outubro de 2005, 18:26 »
biohazard,

Não entendo muito de programação mas vejo um erro neste seu algorítimo.
Para quê serve a variavel j ?
Se o primeiro ítem do vetor não for 10, ela não irá incrementar.

Refiz o código utilizando apenas a variavel i e incrementando-a.

Código: [Selecionar]

vetor = [];
n= int(raw_input("Digite o numero de posicoes do vetor :"));
i = 0;
while ( i < n):
    num = float(raw_input("Digite o numero :"));
    vetor.append(num); # Ad na ultima posicao do vetor EX : [1,2,3,4] digitou 5 --> [1,2,3,4,5]
    if (vetor[i] == 10):
        vetor[i] = 0;
        print vetor[i];
    i = i + 1;
print vetor;


Testei e funcionou. Mas testa aí para ver se é isso mesmo.

Abraço
Egg

Offline biohazard

  • Usuário Ubuntu
  • *
  • Mensagens: 523
  • <thug life>
    • Ver perfil
python duvida !
« Resposta #2 Online: 20 de Outubro de 2005, 21:17 »
humm eh mesmo o j nao tava sendo util , ele servia como contador , para ir andando no indice do vetor !

e era isso que tava com problema valeu egg , nao tinha reparado nisso !
Arch Linux Overlord
Kernel 2.6.25-ARCH

murtog

  • Visitante
python duvida !
« Resposta #3 Online: 20 de Outubro de 2005, 22:07 »
Uma versão menor e mais simples:


Código: [Selecionar]
# Escrever um algoritmo que leia um vetor com N numeros e substitua todos os
# valores iguais a 10 por 0, em seguida, imprima o vetor resultante.
# teste.py


n = input( "N vezes?: " )
vetor = []
for i in range( 1, n+1 ):
    item = input( "Entre com o numero:  " )
    if item == 10:
        item = 0
    vetor.append( item )
print vetor


Saída dele:

Citar
murtog@ubuntu:~/workspace/snippets$ python teste.py
N vezes?: 8
Entre com o numero:  5
Entre com o numero:  6
Entre com o numero:  10
Entre com o numero:  3
Entre com o numero:  4
Entre com o numero:  10
Entre com o numero:  5
Entre com o numero:  9
[5, 6, 0, 3, 4, 0, 5, 9]

Offline biohazard

  • Usuário Ubuntu
  • *
  • Mensagens: 523
  • <thug life>
    • Ver perfil
python duvida !
« Resposta #4 Online: 20 de Outubro de 2005, 22:24 »
eh sua saida com for foi mto boa ! mais gosto de whiles :D

parabens Murtog

[]´s
Arch Linux Overlord
Kernel 2.6.25-ARCH

murtog

  • Visitante
python duvida !
« Resposta #5 Online: 21 de Outubro de 2005, 00:41 »
Citação de: "biohazard"
eh sua saida com for foi mto boa ! mais gosto de whiles :D

parabens Murtog

[]´s


Valeu Hazard! =)

Se você tiver interessado em python, podemos trocar umas idéias.

Meu MSN é: murtogARRIBAgmail.com

Me manda o seu que eu te adiciono.

Falous =o)