BMI计算器不允许转换器选择其中一个

时间:2016-06-16 20:00:57

标签: python loops python-3.x

我正在制作一个BMI计算器,我正在尝试为那些不了解SI比例的人添加一个转换器。问题是我想要写的方式就是如果你知道你的SI你只需按回车键就会问你SI的偏好。

print("\n")
print("     -------------------------------          -------------------------------     ")
print("                                 BMI Calculator                                 ")
print("This calculator uses SI unites to determine BMI, use the converters below for pounds and feet.")
print("               If you know the SI units for just press enter.              ")
print("     -------------------------------          -------------------------------     ")

none=()
c1=input("Please state your Weight in Pounds: ")
if c1 is none: 
    f1=float(c1)
    w1=f1*.45659237

c2=input("Please state your Height in Feet: ")
if c2 is none:
    f2=float(c2)
    h1=f2*.3048

if c1 is not none and c2 is not none:
    B=(w1/h1**2)
    print(B)

else:
    print("\n")
    print("Great you know your SI Preferances: ")
    W=input(("Please state your Weight in Kg: "))
    H=input(("Please state your Height in m: "))
    h=float(H)
    w=float(W)
    B=(w/h**2)
    print(B)

我设置了none =(),这样如果你什么都不输入它就会进入下一个问题。基本上这是有用的,如果你知道你的身体的SI比例。如果按Enter键并输入SI单位,则可以使用。如果你输入你的磅和英尺它会忽略它并继续前进。我想知道我在循环中出错了。

以下是我尝试运行此错误时收到的错误

B=(w1/h1**2)
NameError: name 'w1' is not defined

1 个答案:

答案 0 :(得分:0)

您可以将w1和h1声明为全局变量,并使用!=(不等于)比较检查用户输入是否为空字符串。看看comparison operators

if c1 != '': global w1, h1 f1=float(c1) w1=f1*.45659237

还可以考虑使用format方法将结果减少到2位小数

print("Your bmi:{0:.2f}".format(B))