Ir para conteúdo
Fórum Script Brasil
  • 0

While não funciona depois de uma tentativa errada


milena estudante

Pergunta

Oi, tudo bem? 

Eu fiz um código de descobrir se 3 valores formam um triângulo. Coloquei o while depois pra repetir a operação caso o usuário desejar, porém, depois de uma tentativa errada (o usuário digitar algo diferente de sim ou não), o comando 'não' não está acionando o  break...

Codigo:

print('Bem-vinde ao Triangulo Descobrinator! \n Informe três valores e eu direi se é um triângulo.')
while True:
    LadoA = int(input("Informe o valor do primeiro lado:"))
    LadoB = int(input("Informe o valor do segundo lado:"))
    LadoC = int(input("Informe o valor do terceiro lado:"))

    if LadoA < LadoB + LadoC:
        print(f'Os lados {LadoA},{LadoB},{LadoC} formam um triângulo!')
    else:
        print('Esses lados não formam um triângulo, pois LadoA > LadoB + LadoC!\n Que pena!')
    repeticao = input('Deseja informar novos valores? (Digite sim ou não)')
    if repeticao == 'não':
        print('Obrigade por usar o Triangulo Descobrinator! \n Até mais!')
        break
    elif repeticao != 'sim':
        repeticao = input('Não entendi, digite apenas sim ou não:')

Run: (grifei a parte que deu errado)

Bem-vinde ao Triangulo Descobrinator! 
 Informe três valores e eu direi se é um triângulo.
Informe o valor do primeiro lado:100
Informe o valor do segundo lado:1
Informe o valor do terceiro lado:1
Esses lados não formam um triângulo, pois LadoA > LadoB + LadoC!
 Que pena!
Deseja informar novos valores? (Digite sim ou não)sim
Informe o valor do primeiro lado:1
Informe o valor do segundo lado:2
Informe o valor do terceiro lado:1
Os lados 1,2,1 formam um triângulo!
Deseja informar novos valores? (Digite sim ou não)j
Não entendi, digite apenas sim ou não:não
Informe o valor do primeiro lado:1
Informe o valor do segundo lado:1
Informe o valor do terceiro lado:1

Os lados 1,1,1 formam um triângulo!
Deseja informar novos valores? (Digite sim ou não)não
Obrigade por usar o Triangulo Descobrinator! 
 Até mais!

Process finished with exit code 0
 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

normal, veja que no codigo o ultimo if é para ver se é diferente de sim, depois repete tudo.

o que você tem que fazer é colocar essa parte de  validar sim ou não em um loop while, ou seja  você tera dois loops no seu codigo. e ao invez de break você usara exit, ou return se começar a usar funções

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...