Universius Postado Fevereiro 20, 2013 Denunciar Share Postado Fevereiro 20, 2013 Fala pessoal !Sou iniciante em python antes de mais nada e venho aqui pedir uma ajuda.Bom estou com uma duvida nesse meu codigo.Ao pedir para executar novamente o teste com um outro numero ele sempre me retorna que o numero não é perfeito, mesmo o mesmo sendo perfeito. Gostaria de saber se é possivel fazer o loop voltar desde o inicio. Ele fazendo o teste completo e não apenas printando o ultimo teste. O resultado que tenho fica assim ao executar o codigo:Digite o numero a ser testado: 66 e um numero perfeitoGostaria de testar mais algum numero?simDigite o numero a ser testado: 66 não e um numero perfeitoGostaria de testar mais algum numero?Código executado abaixo n = int(raw_input('Digite o numero a ser testado: ')) teste = 0 while 1: for i in range(1,n): if n % i == 0: teste = teste + i if teste == n: print n, 'e um numero perfeito' #print m else: print n, 'não e um numero perfeito' m = raw_input('Gostaria de testar mais algum numero?') if m == 'não': break else: n = int(raw_input('Digite o numero a ser testado: ')) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Fevereiro 20, 2013 Denunciar Share Postado Fevereiro 20, 2013 veja na apostilahttp://www.tutorialspoint.com/python/python_loops.htmhttp://www.python.org.br/wiki/Documentacao...et=python24.pdfabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 HarryPotter Postado Maio 4, 2014 Denunciar Share Postado Maio 4, 2014 (editado) Coloca tudo dentro de um while e no final do programa pergunta se deseja sair, se sim voce sai do loop, se não voce recomeça o codigo a partir do while. Resposta=raw_input("Digite sair para sair ").lower() while Resposta != "sair": n = int(raw_input('Digite o numero a ser testado: ')) teste = 0 for i in range(1,n): if n % i == 0: teste = teste + i if teste == n: print n, 'e um numero perfeito' else: print n, 'não e um numero perfeito' Resposta=raw_input("Digite sair para sair ").lower() Editado Maio 4, 2014 por HarryPotter Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 HarryPotter Postado Maio 4, 2014 Denunciar Share Postado Maio 4, 2014 (editado) Entende? a atribuiçao do valor digitado pelo usuario tem que estar dentro do loop.Do jeito que voce fez voce vai ler 2 variaveis apenas, não é um loop. Editado Maio 4, 2014 por HarryPotter Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Universius
Fala pessoal !
Sou iniciante em python antes de mais nada e venho aqui pedir uma ajuda.
Bom estou com uma duvida nesse meu codigo.
Ao pedir para executar novamente o teste com um outro numero ele sempre me retorna que o numero não é perfeito, mesmo o mesmo sendo perfeito.
Gostaria de saber se é possivel fazer o loop voltar desde o inicio. Ele fazendo o teste completo e não apenas printando o ultimo teste.
O resultado que tenho fica assim ao executar o codigo:
Digite o numero a ser testado: 6
6 e um numero perfeito
Gostaria de testar mais algum numero?sim
Digite o numero a ser testado: 6
6 não e um numero perfeito
Gostaria de testar mais algum numero?
Código executado abaixo
n = int(raw_input('Digite o numero a ser testado: '))
teste = 0
while 1:
for i in range(1,n):
if n % i == 0:
teste = teste + i
if teste == n:
print n, 'e um numero perfeito'
#print m
else:
print n, 'não e um numero perfeito'
m = raw_input('Gostaria de testar mais algum numero?')
if m == 'não': break
else:
n = int(raw_input('Digite o numero a ser testado: '))
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
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.