簡體   English   中英

NameError:未定義名稱“bmi_calculator”

[英]NameError: name 'bmi_calculator' is not defined

我正在嘗試制作一個 bmi 計算器,但即使我已經定義了 bmi 計算器,我也會遇到 NameError 問題。 我的代碼是這樣的: -

name1 = 'Person1'
height1_m = 1.7
weight1_kg = 54

name2 = 'Person2'
height2_m = 2
weight2_kg = 70

name3 = 'Person3'
height3_m = 1
weight3_kg = 1000

def bmi_calculator(name, height_m, weight_kg):
    bmi = weight_kg / (height_m ** 2)
    print(name + "'s bmi is: " + bmi)
    if bmi > 25
        print(name + 'is overweight')
    else
        print(name + 'is not overweight')

result1 = bmi_calculator(name1, height1_m, weight1_kg)
result2 = bmi_calculator(name2, height2_m, weight2_kg)
result3 = bmi_calculator(name3, height3_m, weight3_kg)

NameError                                 Traceback (most recent call last)
<ipython-input-10-31aab3e09e71> in <module>
----> 1 result1 = bmi_calculator(name1, height1_m, weight1_kg)
      2 result2 = bmi_calculator(name2, height2_m, weight2_kg)
      3 result3 = bmi_calculator(name3, height3_m, weight3_kg)

NameError: name 'bmi_calculator' is not defined

第一個問題是, ifelse末尾的冒號 ( : ) 是必需的。

第二個問題是,您試圖將float隱式轉換為str

這會起作用:

name1 = 'Person1'
height1_m = 1.7
weight1_kg = 54

name2 = 'Person2'
height2_m = 2
weight2_kg = 70

name3 = 'Person3'
height3_m = 1
weight3_kg = 1000

def bmi_calculator(name, height_m, weight_kg):
    bmi = weight_kg / (height_m ** 2)
    print(str(name) + "'s bmi is: " + str(bmi))
    if bmi > 25:
        print(name + 'is overweight')
    else:
        print(name + 'is not overweight')

result1 = bmi_calculator(name1, height1_m, weight1_kg)
result2 = bmi_calculator(name2, height2_m, weight2_kg)
result3 = bmi_calculator(name3, height3_m, weight3_kg)

暫無
暫無

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

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