/ / Как да поправя този калкулатор на Python BMI? - питон, отстраняване на грешки

Как да поправя този калкулатор на BMI на Python? питън, отстраняване на грешки

Това е калкулатор на BMI, който написах в python

print("BMI calculator V1")

name = str(input("What"s your name?"))
weight = int(input("Your weight in Kilograms"))
height = float(input("Your height in Metres"))

def function(w, h):    #function here is the bmi calculator
bmi = w / h ** 2
return("Your BMI is " + str(bmi))

bmi_user = function(weight, height)
print(bmi_user)

if bmi_user < 18:
print(name + "," + "you are underweight")
elif bmi_user > 25:
print(name + "," + "you are overweight")
else:
print(name + "," + "you are normal")

Той показва следната грешка, когато стартирам кода

ред 15, в ако плаващ (bmi_user) <18:
ValueError: не може да конвертира низ в float:

Отговори:

1 за отговор № 1

Съобщението за грешка е ясно: не можете да правите сравнения между низ и двойка.

Вижте какво връща функцията ви: низ.

def function(w, h):    #function here is the bmi calculator
bmi = w / h ** 2
return("Your BMI is " + str(bmi))

bmi_user = function(weight, height)

Ще се справите по-добре с това:

def bmi_calculator(w, h):
return w / h ** 2

1 за отговор № 2

Поправете го, като не връщате низ от изчисленията си. Трябва да дадете това Как да отстранявате грешки в малки програми (# 1) прочетете го и го следвайте, за да отстраните грешките в кода си.

print("BMI calculator V1")

name = str(input("What"s your name?"))
weight = int(input("Your weight in Kilograms"))
height = float(input("Your height in Metres"))

def calcBmi(w, h):    # function here is the bmi calculator
bmi = w / h ** 2
return bmi        # return a float, not a string

bmi_user = calcBmi(weight, height)  # now a float
print(f"Your BMI is: {bmi_user:.2f}")   # your output message

if bmi_user < 18:
print(name + "," + "you are underweight")
elif bmi_user > 25:
print(name + "," + "you are overweight")
else:
print(name + "," + "you are normal")

function не е наистина добро име, аз го промених calcBmi.


0 за отговор № 3

Вашата функция def функция (w, h): връща низ като по-долу.

return("Your BMI is " + str(bmi))

Това не може да бъде сравнено с цяло число, както е посочено в изявленията ви по-долу.

if bmi_user < 18:

Долупосоченият ред също ще бъде грешка

elif bmi_user > 25:

Променете функцията си по-долу, тя ще работи

def function(w, h):    #function here is the bmi calculator
bmi = w / h ** 2
return bmi