DEV Community

Cover image for How to build a BMI Calculator in Python
Rishabh Singh ⚡
Rishabh Singh ⚡

Posted on

How to build a BMI Calculator in Python

Hola folks! Today we will build a simple BMI Calculator in Python.

How does it work?

Alt Text

A BMI Calculator will take in the height and weight of the individual and will calculate the BMI of the person.

Body mass index (BMI) is a measure of body fat based on height and weight.

Based on the BMI of the individual, it will print a statement stating the overall health of the person.

Let's start coding our project!

Let's Code

Alright, so the first thing we need to do is to ask the user their height & weight. This can be easily achieved through input() function.

height = float(input("Enter your height in cm: "))
weight = float(input("Enter your weight in kg: "))
Enter fullscreen mode Exit fullscreen mode

We will convert the input string to float so that we can perform calculations with it.

Next up, we have to calculate the BMI.

The formula to calculate BMI is $weight (kg)/{height (m)}^2$. Let's implement this formula in python.

BMI = weight / (height/100)**2
Enter fullscreen mode Exit fullscreen mode

Here we will be dividing the height by 100 to convert the centimetres into meters.

Now let's print out the BMI.

print(f"You BMI is {BMI}")
Enter fullscreen mode Exit fullscreen mode

Now we have to print a statement to state the current health of the user based on their BMI.

Here is how BMI is classified:

https://miro.medium.com/max/960/1*S2aR2zRzjiV2IVK6DUMNhw.jpeg

We are going to simplify it a bit, so make it easier to understand but feel free to stick to this classification if you prefer.

We will be using if conditionals for classification.

if BMI <= 18.4:
    print("You are underweight.")
elif BMI <= 24.9:
    print("You are healthy.")
elif BMI <= 29.9:
    print("You are over weight.")
elif BMI <= 34.9:
    print("You are severely over weight.")
elif BMI <= 39.9:
    print("You are obese.")
else:
    print("You are severely obese.")
Enter fullscreen mode Exit fullscreen mode

Here's what it will print:

  • if BMI is less than or equal to 18.4 then You are underweight. will be printed.
  • if BMI is less than or equal to 24.9 then You are healthy. will be printed.
  • if BMI is less than or equal to 29.9 then You are over weight. will be printed.
  • if BMI is less than or equal to 34.9 then You are severely over weight. will be printed.
  • if BMI is less than or equal to 39.9 then You are obese. will be printed.
  • if BMI none of the above are true then You are severely obese. will be printed.

That's it! We are done! Easy Peasy right!

Source Code

You can find the complete source code of this project here -

mindninjaX/Python-Projects-for-Beginners

Support

Thank you so much for reading! I hope you found this beginner project useful.

If you like my work please consider Buying me a Coffee so that I can bring more projects, more articles for you.

https://dev-to-uploads.s3.amazonaws.com/i/5irx7eny4412etlwnc64.png

Also if you have any questions or doubts feel free to contact me on Twitter, LinkedIn & GitHub. Or you can also post a comment/discussion & I will try my best to help you :D

Top comments (5)

Collapse
 
jaywalkerjpg profile image
JayWalker-jpg

Great project for a beginner like me. Thank you! I just have one problem, when I try this, it tells me:

BMI = (height * weight)
TypeError: can't multiply sequence by non-int of type 'str'

Any idea what might fix this?

Collapse
 
adam_filip_9b9274b36e228f profile image
Adam Filip

when you input something python automaticly see it as a string. Make sure you put float in front of height and weight formula.
weight = float(input("Enter your weight in cm: "))
height = float(input("Enter your height in cm: "))

Collapse
 
adam_filip_9b9274b36e228f profile image
Adam Filip

Also I think that BMI = (height * weight) is wrong. It should be
BMI = weight_kg / (height_cm/100)**2

Collapse
 
life_of_thayow profile image
Life_of_thayow

Tryspacng_hyhyjhjjb**uujujyyy

  1. **_
Collapse
 
fudmel profile image
sonotoridesu

Hey if you can see this can you add how to break while loop here because my task is to enter"0" to end the program or break the loop

Some comments may only be visible to logged-in visitors. Sign in to view all comments.