我试图做一个简单的BMI计算器,需要用户输入。我使用try-except对height和weight值进行过滤,避免接受字符串或小于0的值。然而,当我试图计算BMI时,它说身高和体重的值没有定义。
`def height_main():
height = 0
while True:
try:
height_try = float(input("Enter your height in meters: "))
except ValueError:
print("Please enter a valid height.")
continue
else:
if height_try > 0:
height += height_try
break
else:
("Please enter a valid height.")
return height
def weight_main():
weight = 0
while True:
try:
weight_try = float(input("Enter your weight in kilograms: "))
except ValueError:
print("Please enter a valid weight.")
continue
else:
if weight_try > 0:
weight += weight_try
break
else:
("Please enter a valid weight.")
return weight
bmi = weight / (height**2)
print(bmi)`
这是我写的代码。(如果它的混乱,我很抱歉,我是新的编码,我只是试图重新创建我在视频和其他帖子中看到的内容。
当我尝试运行代码时,会出现以下内容:NameError: name 'weight' is not defined
我假设变量已经通过try-except定义了。如何定义身高和体重的值?
1条答案
按热度按时间2lpgd9681#
看起来你是在从方法的外部引用方法内部的变量。
它不存在,因为变量绑定到方法的作用域,而不是脚本的全局作用域。
你的意思是也许像这样调用方法吗?