我写了一个简单的程序来计算一个人的体重指数。但我无法完成它。下面是我的程序
程序
h = input("Please Enter your height in meters:")
q = raw_input("Do you want to enter your weight in kg or lbs?")
if q=="kg":
w1 = input("Please Enter your weight in kgs:")
bmi1 = w1/(h*h)
print "Your BMI is", bmi1
if bmi1 <= 18.5:
print "Your are underweight."
if bmi1 > 18.5 & bmi1 < 24.9:
print "Your weight is normal."
if bmi1 > 25 & bmi1 < 29.9:
print "Your are overweight"
if bmi1 >= 30:
print "Your are obese"
if q=="lbs":
w2 = input("Please Enter your weightin lbs:")
bmi2 = w2/((h*h)*(39.37*39.37)*703)
print "Your BMI is:", bmi2
if bmi2<= 18.5:
print "Your are underweight."
if bmi2>18.5 & bmi2<24.9:
print "Your weight is normal."
if bmi2>25 & bmi2<29.9:
print "Your are overweight"
if bmi2>=30:
print "Your are obese"
输出
Please Enter your height in meters:1.52
Do you want to enter your weight in kg or lbs?kg
Please Enter your weight in kgs:51
Your BMI is 22.074099723
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "bmi.py", line 11, in <module>
if bmi1 > 18.5 & bmi1 < 24.9:
TypeError: unsupported operand type(s) for &: 'float' and 'float'
我哪里做错了?任何人只要告诉我。。
谢谢:)。
^{} 是一个bitwise operator,我想你是在寻找布尔值^{} 。
但是请注意,Python还支持以下语法:
因为你似乎已经在缩进中步履蹒跚,所以你的脚本可能是这样的:
有一些小的改进:
input
函数的行为类似于raw_input
,而没有任何东西类似于Python 2input
,所以编写这样的输入可能是一个好习惯)bmi
值,所以不需要写两次相同的东西。还有一些事情要做,可能是将整个脚本包装成函数:)
相关问题 更多 >
编程相关推荐