编码布尔逻辑时出现未知语法错误

Unknown syntax error when coding boolean logic

我正在尝试制作一个 BMI 计算器,但每次我 运行 时都会收到第 6 行的语法错误。第 5 行类似,运行s 没有问题。我最近将 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)

您需要添加 ''' 体重指数<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)

英文可以说“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(..)) 没有多大意义,因为到那时你已经 t运行 确定了值,所以只需使用 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")