簡體   English   中英

如何在此循環中獲得BMI的返回值?

[英]How do I get a return value for BMI in this loop?

我正在做一個分配,以創建一個代碼,該代碼接收來自用戶的名稱,體重和身高的輸入,然后返回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”退出:

好的,因此您需要進行一些修復才能使其正常工作。

  • 在打印時,您沒有正確調用該函數,並且python認為您正在嘗試使用"BMI: "作為函數。 您要如何調用BMI就像BMI(weight, height) ,在其中您將weight和height的值作為參數傳遞。 BMI返回浮點數,因此您需要在附加之前將其轉換為字符串。 這些更改的結果是"BMI: "+ str(BMI(num1, num2))
  • BMI函數的定義中,您需要將weight和height作為如下參數傳遞: 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)))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM