类型错误:不支持 & 的操作数类型:'float' 和 'float' [英] TypeError: unsupported operand type(s) for &: 'float' and 'float'
本文介绍了类型错误:不支持 & 的操作数类型:'float' 和 'float'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我编写了这个简单的程序来计算一个人的 BMI.但我无法完全执行它.下面是我的程序,
I wrote this simple program to calculate one's BMI. But I am unable to execute it complete. Below is my program,
课程
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'
我哪里出错了?任何人都可以告诉我..
Where am I going wrong? Anyone just let me know..
谢谢:)
推荐答案
&
is a bitwise operator, I think you were looking for the boolean and
.
但请注意,Python 还支持以下语法:
But notice that Python also supports the following syntax:
if 18.5 < bmi1 < 24.9:
# ...
<小时>
由于您似乎对缩进感到困扰,因此您的脚本可能如下所示:
Since you seemed to have trobled with indentation this is how your script might look like:
h = raw_input("Please enter your height in meters: ")
h = float(h)
w_unit = raw_input("Do you want to enter your weight in kg or lbs? ")
w = raw_input("Please enter your weight in {}: ".format(w_unit))
w = int(w)
if w_unit == "kg":
bmi = w / (h*h)
elif w_unit == "lbs":
bmi = w / ((h*h) * (39.37 * 39.37) * 703)
print "Your BMI is {:.2f}".format(bmi)
if bmi <= 18.5:
print "Your are underweight."
elif 18.5 < bmi <= 25:
print "Your weight is normal."
elif 25 < bmi < 30:
print "Your are overweight"
elif bmi >= 30:
print "Your are obese"
有一些细微的改进:
- 显式转换(因为在 Python 3 中
input
函数的行为类似于raw_input
并且没有什么像 Python 2input
,它可能是像这样写输入的好习惯) - 真正改变的是
bmi
值,所以没有必要写两次相同的东西.
- The explicit conversion (since in Python 3 the
input
function behave likeraw_input
and there's nothing like the Python 2input
, it might be a good habit to write your input like that) - What really changes is the
bmi
value, so there's no need to write two times the same thing.
剩下的事情要做,可能是将整个脚本包装成函数:)
Something left to do, might be wrap the whole script into functions :)
这篇关于类型错误:不支持 & 的操作数类型:'float' 和 'float'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文