Ir ao conteúdo
  • Cadastre-se

Python While continua mesmo quando o valor atende o requisito


Ir à solução Resolvido por Byoku,

Posts recomendados

O programa está incompleto mas o problema é que as condições que eu já adicionei não são utilizadas em função do while, eu estava utilizando apenas para while >5 e funcionava normalmente, porém após adicionar a lista com o proposito de evitar números menores sem utilizar outra condição while que 0 o loop continua

 

Perdoem se tiver algum outro erro despercebido ainda estou iniciando na programação

 

import math
import sys

print()
print("#" * 51)
print("Este programa calculará o SENO, COSSENO e TANGENTE.")
print("#" * 51)
print()

lista1 = [1,2,3,4,5]

a = int(input("Para realizar os cálculos digite: \n\nSENO = 1 \nCOSSENO = 2 \nTANGENTE = 3 \nTODOS = 4 \nENCERRAR PROGRAMA = 5 \n\nDigite a seguir: "))
print("#" * 51)
print()
 
while a != lista1:
        print("Ei, digite um dos números informados!")
        print()
        a = int(input("Para realizar os cálculos digite: \n\nSENO = 1 \nCOSSENO = 2 \nTANGENTE = 3 \nTODOS = 4 \nENCERRAR PROGRAMA = 5 \n\nDigite a seguir: "))
        print("#" * 51)
        print()
    
if a == 1:
    co = float(input("Digite o valor do CATETO OPOSTO: "))
    hi = float(input("Digite o valor da HIPOTENUSA: "))
    print("#" * 51)
    print()
        
    sen = co / h

elif a == 5:
    print("Encerrando programa...")
    print()
    sys.exit(0)

 

Link para o post
Compartilhar em outros sites
  • Pedro Tigre alterou o título para While continua mesmo quando o valor atende o requisito
  • Solução

@Pedro Tigre Quando você faz a comparação
 

a != lista1

Você diz que, a será literalmente diferente de lista1.

Se você quer verificar se o valor de a não está contido em lista1, basta alterar a condição para:

a not in lista1

 

  • Curtir 1
Link para o post
Compartilhar em outros sites

@Pedro Tigre Acho melhor não usar lista, teste o intervalo dos números assim,

 

while True:
    a = int(input("Para realizar os cálculos digite:\n\n"
        "SENO = 1\n"
        "COSSENO = 2\n"
        "TANGENTE = 3\n"
        "TODOS = 4\n"
        "ENCERRAR PROGRAMA = 5\n"
        "\nDigite a seguir: "))
    
    if not 1 <= a <= 5:
        print("Ei, digite um dos números informados!")
        continue
    
    if a == 5:
        print("Encerrando programa...")
        break

 

  • Curtir 1
Link para o post
Compartilhar em outros sites

@Pedro Tigre Bom que resolveu, mas não acho que esse seja um caso para usar uma lista, isso não é necessário. Você teve que colocar todas as opções na lista (se fossem mais teria trabalho adicional) e depois verificou se o que o usuário informou está nela. É mais simples já testar direto o intervalo da própria variável que recebe o valor e usar a mesma lógica para vários outros casos.

Link para o post
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...

Aprenda a ler resistores e capacitores

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!