【问题标题】:How do I get a return value for BMI in this loop?如何在此循环中获得 BMI 的返回值?
【发布时间】:2019-06-20 02:49:59
【问题描述】:

我正在执行一项任务,以创建一个代码,该代码接收用户输入的姓名、体重和身高,然后返回一个 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 体重指数:xxx

请输入玩家姓名或按“X”退出:

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    好的,您需要解决一些问题才能使其正常工作。

    • 打印时,您没有正确调用函数,python 认为您正在尝试将"BMI: " 用作函数。你想如何调用BMI 就像BMI(weight, height) 一样,你将体重和身高的值作为参数传递。 BMI 返回一个浮点数,因此您需要在附加之前将其转换为字符串。这些更改的结果是"BMI: "+ str(BMI(num1, num2))
    • BMI 函数的定义中,您需要将体重和身高作为参数传递,如下所示:def BMI(weight, height):。这将允许您在函数体中同时使用 weightheight
    • python 中的^ 不是幂,而是按位异或。您想像这样使用** 运算符: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)))
    

    【讨论】:

    • 哇,非常感谢!这一切都清楚了。我非常感谢您的回答对我有多大帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-09
    • 2016-05-21
    • 1970-01-01
    • 2019-09-09
    相关资源
    最近更新 更多