Ir ao conteúdo

Posts recomendados

Postado
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

Postado

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

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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!