如何在python中定义try-except中的变量?

kqhtkvqz  于 2023-06-25  发布在  Python
关注(0)|答案(1)|浏览(145)

我试图做一个简单的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定义了。如何定义身高和体重的值?

2lpgd968

2lpgd9681#

看起来你是在从方法的外部引用方法内部的变量。
它不存在,因为变量绑定到方法的作用域,而不是脚本的全局作用域。
你的意思是也许像这样调用方法吗?

bmi = weight_main() / (height_main()**2)

相关问题