我正在嘗試制作一個 BMI 計算器,但每次運行它時都會收到第 6 行的語法錯誤。第 5 行類似,運行沒有問題。我最近將 BMI 變數設定為浮點數和整數,以查看這是否是我的問題,但我似乎無法弄清楚。
h = float(int(input()))
w = int(input)
bmi = float(int(w / ( h ** 2)))
if bmi < 18.5:
print(Underweight)
elif bmi >= 18.5 and < 25:
print(Normal)
elif bmi >= 25 and < 30:
print(Overweight)
if bmi > 30:
print(Obesity)
uj5u.com熱心網友回復:
英文里可以說“if bmi is greater than 18.5 and less than 25”,大家都知道“小于25”還是指bmi。
但是 Python 并不擅長背景關系,所以你必須澄清一下:
elif bmi >= 18.5 and bmi < 25:
然后,您將遇到一系列其他小問題:
- 確保使用
input()而不僅僅是input呼叫函式。 - 使用
print("Underweight")引號來闡明這是一個字串而不是變數名 float(int(..))沒有多大意義,因為到那時你已經截斷了值,所以只需使用float(..)
總之,你最終會得到:
h = float(input())
w = int(input())
bmi = float(w / ( h ** 2))
if bmi < 18.5:
print("Underweight")
elif bmi >= 18.5 and bmi < 25:
print("Normal")
elif bmi >= 25 and bmi < 30:
print("Overweight")
if bmi > 30:
print("Obesity")
如果您愿意,您可以利用您的計算已經在floats 中并且只會采用陳述句的一個分支這一事實來進一步簡化它if..elif..else,以獲得:
h = float(input())
w = int(input())
bmi = w / ( h ** 2)
if bmi < 18.5:
print("Underweight")
elif bmi < 25:
print("Normal")
elif bmi < 30:
print("Overweight")
else:
# BMI is necessarily > 30 here, otherwise one of the
# other branches would have triggered already
print("Obesity")
uj5u.com熱心網友回復:
您需要添加 ''' bmi<25 ''' 而不是 ''' <25 '''。
h = float(int(input()))
w = int(input)
bmi = float(int(w / ( h ** 2)))
if bmi < 18.5:
print(Underweight)
elif bmi >= 18.5 and bmi < 25:
print(Normal)
elif bmi >= 25 and bmi < 30:
print(Overweight)
if bmi > 30:
print(Obesity)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/467391.html
