Python 如何从公制转换为英制,反之亦然(bmi)?
我必须创建一个BMI计划。体重应输入为千克,身高应输入为厘米,然后程序应将输入值转换为英制当量并显示,然后计算BMI并显示结果 到目前为止,我已经创建了一个BMI计算器,用户可以在其中选择公制和英制。我创建了一个while-true语句,供用户在公制和英制之间进行选择,当用户输入高度和重量时,它将计算并显示结果。但我的问题是,我必须将公制值转换为英制值,我不知道怎么做。我想念公制到英制的转换器,反之亦然,有什么办法可以改进吗Python 如何从公制转换为英制,反之亦然(bmi)?,python,Python,我必须创建一个BMI计划。体重应输入为千克,身高应输入为厘米,然后程序应将输入值转换为英制当量并显示,然后计算BMI并显示结果 到目前为止,我已经创建了一个BMI计算器,用户可以在其中选择公制和英制。我创建了一个while-true语句,供用户在公制和英制之间进行选择,当用户输入高度和重量时,它将计算并显示结果。但我的问题是,我必须将公制值转换为英制值,我不知道怎么做。我想念公制到英制的转换器,反之亦然,有什么办法可以改进吗 while True: try: if cho
while True:
try:
if choice == 'Metric':
weight = float(input('weight in kg:'))
height = float(input('height in cm:'))
if choice == 'Imperial':
weight = float(input('weight in pounds:'))
height = float(input('height in inches:'))
except ValueError:
print('Invalid input')
else:
break
if choice == "Metric":
bmi = weight / (height * height)
return bmi
if choice == "Imperial":
bmi = (weight * 703) / (height * height)
return bmi
首先必须定义变量
choice
,因为到目前为止,您已经创建了if
语句,这些语句只是没有被激活。所以试试这个:
def conversion_to_metric(weight, height):
"""Convert values from Imperial to Metric"""
pound = 0.453592
kg_ans = float(weight * pound)
inch = 2.54
cm_ans = float(inch * height)
print("--------------------")
print(str(weight) + "lbs. " + "= " + str(kg_ans) + "kg.")
print(str(height) + "in. " + "= " + str(cm_ans) + "cm.")
def conversion_to_imperial(weight, height):
"""Convert values from Metric to Imperial"""
kg = 2.20462
lbs_ans = float(weight * kg)
cm = 0.393701
inch_ans = float(cm * height)
print("--------------------")
print(str(weight) + "kg. " + "= " + str(lbs_ans) + "lbs.")
print(str(height) + "cm. " + "= " + str(inch_ans) + "in.")
while True:
try:
print("A. Imperial -> Metric\n" + "B. Metric -> Imperial")
choice = input("Choose a conversion: ")
if choice == 'B':
weight = float(input('\tweight in kg:'))
height = float(input('\theight in cm:'))
conversion_to_imperial(weight, height)
if weight == 'q' or height == 'q':
break
elif choice == 'A':
weight = float(input('\tweight in pounds:'))
height = float(input('\theight in inches:'))
conversion_to_metric(weight, height)
if weight == 'q' or height == 'q':
break
elif choice == 'q':
break
except ValueError:
print('Please enter either A or B...')
希望这有帮助。记住总是给用户一个退出的选项,否则你会有一个无休止的循环,耗尽你的内存。修正一些我的变量。这个程序有什么错?我正在尝试创建一个BMI计算器,用户可以在公制和英制之间进行选择。我创建了一个while-true语句,供用户在公制和英制之间进行选择,当用户输入高度和重量时,它将计算并显示结果。但我的问题是,我必须将公制值转换为英制值,我不知道怎么做。我错过了从公制到英制的转换,反之亦然,有什么想法吗?很抱歉出现了一些错误,我回去修复了它们,所以现在就试试吧。