Achar IMC definindo Sexo Peso altura [RESOLVIDO]

1. Achar IMC definindo Sexo Peso altura [RESOLVIDO]

Antonio Leonardo Fernandes
leonardo60

(usa Linux Mint)

Enviado em 28/12/2016 - 10:12h

Há possibilidade de resolver a questão abaixo em Python?
Como achar o IMC de uma pessoa usando o Sexo Peso e Altura, porque há uma diferença entre o sexo.
Exemplo -> Feminino
<= 16
>=16.1 e <=17.5
>=17.6 e <=24
>=24.1
Exemplo -> Masculino
<=17
>=18.1 e <=18.1
>=18.6 e <=25
>=25.1


  


2. MELHOR RESPOSTA

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 28/12/2016 - 13:51h

Levando em conta os músculos e ossos um pouco mais pesados dos homens, ficaria +- assim:

Rascunho;
#!/usr/bin/env python3

class IMC(object):

def __init__(self):
self.weight = None
self.height = None

def calc(self):
result = float('{:.1f}'.format(self.weight / (self.height ** 2)))

if result < 16.0:
return str(result) + ' Magreza grave'
elif 16.0 + 1.0 > result > 16.0:
return str(result) + ' Magreza moderada'
elif 17.0 + 1.5 > result > 17.0:
return str(result) + ' Magreza leve'
elif 18.5 + 6.5 > result > 18.5:
return str(result) + ' saudável'
elif 25.0 + 5.0 > result > 25.0:
return str(result) + ' Sobrepeso'
elif 30.0 + 5.0 > result > 30.0:
return str(result) + ' Obesidade Grau I'
elif 35.0 + 5.0 > result > 35.0:
return str(result) + ' Obesidade Grau II (severa)'
elif self.calc() > 40.0:
return str(result) + ' Obesidade Grau III (mórbida)'


class Man(IMC):
def __init__(self, weight, height):
super().__init__()
self.weight = weight - 1
self.height = height

def imc(self):
print(self.calc())


class Woman(IMC):
def __init__(self, weight, height):
super().__init__()
self.weight = weight
self.height = height

def imc(self):
print(self.calc())

if __name__ == '__main__':
woman = Woman(weight=62, height=1.62)
woman.imc()

man = Man(weight=62, height=1.62)
man.imc()






______________________________________________________________________
OS: Biebian
Kernel: x86_64 3.5.2-amd64
Resolution: 1320x768
CPU: Intel Core i3-4005U CPU @ 1.7GHz
RAM: 3852MiB
Distro: http://biebian.sourceforge.net/

3. Re: Achar IMC definindo Sexo Peso altura [RESOLVIDO]

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 28/12/2016 - 12:47h

A diferença varia de pessoa para pessoa? Há outras formas de se calcular o IMC não levando em conta a forma geométrica como descrito aqui >> https://pt.wikipedia.org/wiki/%C3%8Dndice_de_massa_corporal#M.C3.A9todo_mais_preciso , ou seja, não é um calculo tão preciso assim, e também vai depender do código.



______________________________________________________________________
OS: Biebian
Kernel: x86_64 3.5.2-amd64
Resolution: 1320x768
CPU: Intel Core i3-4005U CPU @ 1.7GHz
RAM: 3852MiB
Distro: http://biebian.sourceforge.net/


4. Re: Achar IMC definindo Sexo Peso altura [RESOLVIDO]

Lisandro Guerra
Lisandro

(usa Arch Linux)

Enviado em 02/01/2017 - 22:30h

ctw6av escreveu:

Levando em conta os músculos e ossos um pouco mais pesados dos homens, ficaria +- assim:

Rascunho;
#!/usr/bin/env python3

class IMC(object):

def __init__(self):
self.weight = None
self.height = None

def calc(self):
result = float('{:.1f}'.format(self.weight / (self.height ** 2)))

if result < 16.0:
return str(result) + ' Magreza grave'
elif 16.0 + 1.0 > result > 16.0:
return str(result) + ' Magreza moderada'
elif 17.0 + 1.5 > result > 17.0:
return str(result) + ' Magreza leve'
elif 18.5 + 6.5 > result > 18.5:
return str(result) + ' saudável'
elif 25.0 + 5.0 > result > 25.0:
return str(result) + ' Sobrepeso'
elif 30.0 + 5.0 > result > 30.0:
return str(result) + ' Obesidade Grau I'
elif 35.0 + 5.0 > result > 35.0:
return str(result) + ' Obesidade Grau II (severa)'
elif self.calc() > 40.0:
return str(result) + ' Obesidade Grau III (mórbida)'


class Man(IMC):
def __init__(self, weight, height):
super().__init__()
self.weight = weight - 1
self.height = height

def imc(self):
print(self.calc())


class Woman(IMC):
def __init__(self, weight, height):
super().__init__()
self.weight = weight
self.height = height

def imc(self):
print(self.calc())

if __name__ == '__main__':
woman = Woman(weight=62, height=1.62)
woman.imc()

man = Man(weight=62, height=1.62)
man.imc()



Boa solução. Valeu.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts