Ir ao conteúdo

Posts recomendados

Postado

Olá a todos.

 

Ao desenvolver um calculador de IMC preciso que sejam exibidas mensagens diferentes a depender do valor do IMC, de acordo com os dados inseridos pelo usuário. Escrevi o seguinte código que não está dando resposta após inseridas todas as informações:

 

import datetime

print("********************ADAM********************")
print ("*********************SEJA BEM-VINDO***********")

name = input("Oi! Eu sou Adam. Qual é o seu nome?")

if (int(name)) != 0:
    print("Prazer em te conhecer,",name,"!")
else:
    print("Ok, mesmo sem seu nome podemos prosseguir.")

P = input("Você gostaria de saber o seu IMC?")

if P == ("sim","s","Sim","y","yes","Yes","SIM","ok"):
    print("                                                ")
    print("                                                ")
    print("Então vamos lá!")
    print("                                                ")
    print("                                                ")
else:
    print("Ent tchau.")

p = float(input("Primeiro me diz o seu peso:"))
print("                                                ")
print("                                                ")
a = float(input("Tá, agora me diz a sua altura:"))
print("                                                ")
print("                                                ")


IMC = p/(a**2)

dia = int(input("Digita o dia que você nasceu:"))
print("                                                ")
print("                                                ")
mes = int(input("Digite o mês que você nasceu:"))
print("                                                ")
print("                                                ")
ano = int(input("Digite o ano que você nasceu:"))

S = input("Você é sedentário(a)?")
if S == ("sim" or "mais ou menos"):
    print("Isso precisa mudar!")

td = datetime.datetime.now().date() 

bd = datetime.date(ano,mes,dia)

i = int((td-bd).days /365.25)

(IMC<18,5)

if IMC == (IMC<18,5):
     print("Oh, para uma pessoa com",i,"anos, você está abaixo do peso. :(")
     print("Procure um nutricionista, ele poderá te ajudar.")
        
if IMC == (18,5<IMC<24,9):
    print("Parabéns! Seu peso está normal para uma pessoa com",i,"anos!")

if IMC == (25<IMC<29,9):
    print("Para alguém com",i,"anos, você está acima do peso.")
    print("Certifique-se de verificar quanto disso é massa magra (músculos)")
    print("E quanto é gordura!")
    print("Um proffissional de Educação Física é a opinião ideal para o seu caso.")

if IMC == (30<IMC<34,9):
    print("Para alguém com",i,"anos, você está Obesidade nível 1.")
    print("Procure profissionais da saúde para check-up médico")
    print("E uma consulta ao nutricionista.")
    print("Um proffissional de Educação Física é a opinião ideal para o seu caso.")
    print("Principalmente se isso for tudo massa magra. Vai monstro.")

if(IMC ==(35<IMC<40):
    print("Para alguém com",i,"anos, você está Obesidade nível 2.")
    print("Procure profissionais da saúde para check-up médico com urgência")
    print("E uma consulta ao nutricionista. Reeducação alimentar é sua maior aliada!")
    print("Evite o sedentarismo e faça exercícios físicos.")
    print("A menos que seja tudo massa magra. birrrrl")

if IMC > 40:
    print("Para alguém com",i,"anos, você está Obesidade Mórbida.")
    print("Procure sua agência de saude com urgência.")
    print("É crucial uma consulta ao nutricionista. Reeducação alimentar é sua maior aliada!")
    print("Evite o sedentarismo e faça exercícios físicos.")
    print("Se for tudo massa magra, me desculpa aí Schwarzenegger.")

 

 

Postado

@limagabriel      não sei não  , mas creio que mesmo em python  o comando if não aceita esse tipo de comparação ,  e também não entendi muito bem o que você quis fazer nessa linha :

i = int((td-bd).days /365.25)

(IMC<18,5)  #   <-- para que essa instrução ?  o que ela siginifica para você  ? 

#if IMC == (IMC<18,5):   <-- essa comparação é inconsistente . 
#  creio que poderia ser assim :
if IMC <= 18.5:    
     print("Oh, para uma pessoa com",i,"anos, você está abaixo do peso. :(")
     print("Procure um nutricionista, ele poderá te ajudar.") # costumam-se usar aspas simples mesmo 

olha o que o pyCharm diz sobre esse trecho do seu código 

python_1.thumb.jpg.f847e03f3adf68418acba6f3fa69242a.jpg

e é mais comum usarem aspas simples , nos print's . 

Postado

@devair1010 isso está categorizado como C/C#/C++, não é python...

@limagabriel 1º: if (condição) {fazer o que} essa é a forma de se escrever em C o if
2º: se não funcionar mexer na "1º", vai dar muito trabalho, mas faça o seguinte: pegue uma folha de papel e escreva os nomes das variaveis... voce vai ler todas as linhas com calma, seguir o programa e escrever TODAS as mudanças nas variaveis usadas... enquanto faz isso, confira por que o if está com problema...

 

dica: coloque um switch/case para facilitar a leitura, lembre que < é diferente de =< e não se preocupe se precisar usar algum GoTo.

Postado

@Um mero usuário    obrigado   ,  por me alertar sobre esse detalhe ,    mas creio que o @limagabriel  inseriu o código nesse tópico de c / c++ c#      por engano , sem observar que tem um tópico sobre outros tipo de códigos ,  mas você pode ver bem Que esse código não tem a syntaxe da Linguagem c nem c++ nem c#  . !               é python mesmo  . 

Postado

@limagabriel O separador decimal é o ponto e forma como está comparando não é a correta, veja p.ex o primeiro caso,

 

14 horas atrás, limagabriel disse:

if IMC == (IMC<18,5):

 

Devia ser assim,

if IMC < 18.5:

 

E os outros testes assim,

if 18.5 <= IMC < 24.9:

if 24.9 <= IMC < 29.9:

if 29.9 <= IMC < 34.9:

if 34.9 <= IMC <= 40:

if IMC > 40:

 

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!