In python for beginners there is a task to code a BMI calculator. What a better code | Sololearn: Learn to code for FREE!

+1

In python for beginners there is a task to code a BMI calculator. What a better code

My code is working good but I am confused that whether I can use loops (Flow control concept) here .. Help me in making my code to look more better with your feedback

5/31/2021 3:21:20 PM

ch Murali

13 Answers

New Answer

+9

It's not necessary to use round() BMI = float( (wt)/(ht**2))

+7

# much more "pythonic" code: weight = float(input()) height = float(input()) bmi = weight / (height ** 2) if bmi < 18.5: print("Underweight") elif bmi < 25: print("Normal") elif bmi < 30: print("Overweight") else: print("Obesity") """ + meaningfull variable name + spacing between operator and operands + not use of unuseful parenthesis (outer expressions), but explicit parenthesis for exponentiation even if operators precedence make them optional + inlined block of il..elif..else statements since only one statement and total line length is still short enough """

+6

I don't think you need to use a loop since you only have to compare the values and give outputs. most BMI calculators made by people here used only if and else statements

+3

#my bmi code weight = float(input()) height = float(input()) bmi = weight/height**2 if bmi < 18.5: print("Underweight") elif bmi >= 18.5 and bmi < 25: print("Normal") elif bmi >= 25 and bmi < 30: print("Overweight") else: if bmi > 30: print("Obesity")

+1

https://code.sololearn.com/chV1YaLvOQ45/?ref=app

+1

Thanks a lot Coding Kitty Eashan Morajkar Simba

+1

The future is now thanks to science[INACTIVE] python do not have ternary operator, only inlined if..else statement ^^ ch Murali ternary operator is operator wich takes 3 operands... most of languages (but at least not python nor kotlin) have an if..else ternary operator shortcut: if condition: value = v1 # if condition == True else: value = v2 # if condition == False would be shortened to: value = condition ? v1 : v2 but in python you can only do: value = v1 if condition else v2 calling the second "ternary operator" is a language abuse ;P ... and chaining ternary operator (or inlined if..else) to mimic if..elif.else is often considered as bad practice as ends with a code mess, quite unreadable, mostly used by code shortener/obfuscators or in code golf... decreasing maintanability :( finally, python doesn't have such operator by design choice for these reasons, and code recommendations prevent longest lines ;)

0

wt = float(input()) ht = float(input()) BMI = round(float( (wt)/(ht**2) ),2) if BMI < 18.5: print("Underweight") elif 18.5 <= BMI <= 25: print("Normal") elif 25 <= BMI <= 30: print("Overweight") elif BMI > 30: print("Obesity") Here is my code

0

You're welcome ch Murali

0

weight = int(input()) height = float(input()) a = (weight / (height*height)) if a < 18.5: print ("Underweight") if 18.5 <= a < 25: print ("Normal") if 25 <= a < 30: print ("Overweight") if a >= 30: print ("Obesity") This is my code

0

What is ternary operator ? 😅 The future is now thanks to science[INACTIVE]

0

@visph thanks for pointing this out. Yes, I agree with you. It is considered a bad practice to use. Also thanks for the information which I didn't know before.

-1