我正在做一个分配,以创建一个代码,该代码接收来自用户的名称,体重和身高的输入,然后返回BMI值,然后循环返回以询问其他名称。我似乎无法让我的BMI函数返回输出。
def BMI(BMI):
num1, num2 = weight, height
BMI = (num1 * 706)/(num2^2)
return BMI
user = str
end = "x"
while user != end:
print()
user = input("Please enter player name or type 'X' to quit: ")
if user == end:
print("Report Complete")
break
else:
num1 = (float(input("Please enter weight: ")))
num2 = (float(input("Please enter height: ")))
if num1 >= 1:
print("BMI: "(BMI))
我在运行该函数时收到此错误:“”。
我正在寻找符合以下条件的输入
请输入玩家名称或按“ X”退出:xxx 请输入重量:xxx 请输入身高:xxx BMI:xxx
请输入玩家名称或按“ X”退出:
答案 0 :(得分:2)
好的,因此您需要修复一些问题才能使其正常工作。
"BMI: "
作为函数。您要如何调用BMI
就像BMI(weight, height)
一样,在其中您将weight和height的值作为参数进行传递。 BMI
返回一个浮点数,因此您需要在附加之前将其转换为字符串。这些更改的结果是"BMI: "+ str(BMI(num1, num2))
BMI
函数的定义中,您需要将权重和高度作为参数传递,例如:def BMI(weight, height):
。这将允许您在函数主体中同时使用weight
和height
。^
并不意味着功率,而是按位异或。您想像这样使用**
运算符:BMI = (num1 * 706)/(num2**2)
进行了这些更改之后,您应该以如下形式结束:
def BMI(weight, height):
num1, num2 = weight, height
BMI = (num1 * 706.0)/(num2**2)
return BMI
user = str
end = "x"
while user != end:
print()
user = input("Please enter player name or type 'X' to quit: ")
if user == end:
print("Report Complete")
break
else:
num1 = (float(input("Please enter weight: ")))
num2 = (float(input("Please enter height: ")))
if num1 >= 1:
print("BMI: " + str(BMI(num1, num2)))