python duvida !

Iniciado por biohazard, 20 de Outubro de 2005, 17:24

tópico anterior - próximo tópico

biohazard

# 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 :

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

eggx.geo

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.


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

biohazard

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

Uma versão menor e mais simples:


# 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:

Citarmurtog@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]

biohazard

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

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)