Ir ao conteúdo
  • Cadastre-se

Python correção programa simples python


Posts recomendados

def programa():
  while True:
    try:
      nome_produto = input('Digite o nome do produto:')
      preco = input('Digite o preco desse produto:')
      preco = float(preco)
      if preco<0 or preco>100:
        raise ValueError
      quantidade = input('Digite a quantidade do produto:')
      quantidade = int(quantidade)
      if quantidade<0 or quantidade>1000:
        raise Exception 
    except KeyboardInterrupt:
      print('Encerrando o programa...')
      return -1
    except ValueError:
      print('Valor invalido, digite um valor maior que 0 e menor que 100')
    except:
      print('Valor invalido, digite um valor inteiro entre 0 e 1000')
    else:
      lista = [nome_produto,preco,quantidade]
      return lista
  
      

Como eu faço pro programa repetir a interação até que a resposta seja correta ?

porque quando digito um valor invalido pro preço ou pra quantidade, simplesmente o programa reinicia pedindo tudo de novo ao invés de repetir só aquela parte.

Desde já agradeço

Link para o comentário
Compartilhar em outros sites

Olá @Felipe2719, no ligar do:

if preco<0 or preco>100:
        raise ValueError

use desta forma:

while preco < 0 or preco > 100:
  print('O preço de estar entre 0 e 100,00')
  preco = float(input('Digite o preco desse produto:'))

Enquanto o usuário não digitar um valor no  intervalo entre 0 e 100, a rotinha não encerrará laço. Isso também serve para quantidade.

quantidade = int(input('Digite a quantidade do produto: '))
while quantidade < 0 or quantidade > 1000:
  print('Valor invalido, digite um valor inteiro entre 0 e 1000')
  quantidade = int(input('Digite a quantidade do produto: '))

 

o código completo: 

 

def programa():
    while True:
        try:
            nome_produto = input('Digite o nome do produto: ')
            preco = float(input('Digite o preço desse produto: '))
            while preco < 0 or preco > 100:
                print('Valor invalido, digite um valor maior que 0 e menor que 100')
                preco = float(input('Digite o preco desse produto: '))

            quantidade = int(input('Digite a quantidade do produto: '))
            while quantidade < 0 or quantidade > 1000:
                print('Valor invalido, digite um valor inteiro entre 0 e 1000')
                quantidade = int(input('Digite a quantidade do produto: '))

        except KeyboardInterrupt:
            print('Encerrando o programa...')
            return -1
        else:
            lista = [nome_produto, preco, quantidade]
            return lista


print(programa())

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...