编码布尔逻辑时出现未知语法错误
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")
如果你愿意,你可以进一步简化它,利用你的计算已经在 float
s 中并且只会采用 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")
我正在尝试制作一个 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")
如果你愿意,你可以进一步简化它,利用你的计算已经在 float
s 中并且只会采用 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")