elif <= 语法无效?
elif <= invalid syntax?
我目前正在使用 pandas 开发一个计算器,为了确定一个变量,我使用了嵌套的 if 语句。但不幸的是,我从下面的代码中得到了一个无效的语法错误。
if net_option == 'Y':
if age <= 30:
desired_net = 0.15
elif age >= 31 and <= 60:
desired_net = 0.12
elif age >= 61 and <= 90:
desired_net = 0.11
elif age >= 91 and <= 140:
desired_net = 0.10
elif age >= 141 and <= 180:
desired_net = 0.09
elif age >= 181 and <= 245:
desired_net = 0.08
elif age >= 246 and <= 270:
desired_net = 0.07
elif age >= 271 and <= 365:
desired_net = 0.6
elif age >= 366 and <= 500:
desired_net = 0.3
elif: age >= 501 and <= 700:
desired_net = 0.0
elif age > 700:
desired_net = -0.1
else:
desired_net = 0.1
else:
desired_net = desired_net
错误信息:
elif age >= 31 and <= 60:
^
SyntaxError: invalid syntax
我想我在这里遗漏了一些东西,因为我很确定 <= 是一个有效的语法。
有没有人知道可能出了什么问题?如果您想查看更多行,请告诉我。
elif age >= 31 and age <= 60:
当使用and
运算符时,您需要再次编写要比较的变量,因为and
前后的每个表达式都是独立的。
或者,如果您使用 Numpy,您可以使您的代码更简单,并使逻辑功能化,如下所示:
def get_desired_net(age):
desired_net = {0:0.15, 31:0.12, 61:0.11, 91:0.10, 141:0.09, 181:0.08, 246:0.07, 271:0.06, 366:0.03, 501:0.00, 701:-0.01}
keys_array = np.array(list(desired_net.keys()))
max_age = max(keys_array[keys_array <= age])
return desired_net[max_age]
>>> get_desired_net(15)
0.15
>>> get_desired_net(30)
0.15
>>> get_desired_net(31)
0.12
>>> get_desired_net(700)
0.0
>>> get_desired_net(701)
-0.01
我目前正在使用 pandas 开发一个计算器,为了确定一个变量,我使用了嵌套的 if 语句。但不幸的是,我从下面的代码中得到了一个无效的语法错误。
if net_option == 'Y':
if age <= 30:
desired_net = 0.15
elif age >= 31 and <= 60:
desired_net = 0.12
elif age >= 61 and <= 90:
desired_net = 0.11
elif age >= 91 and <= 140:
desired_net = 0.10
elif age >= 141 and <= 180:
desired_net = 0.09
elif age >= 181 and <= 245:
desired_net = 0.08
elif age >= 246 and <= 270:
desired_net = 0.07
elif age >= 271 and <= 365:
desired_net = 0.6
elif age >= 366 and <= 500:
desired_net = 0.3
elif: age >= 501 and <= 700:
desired_net = 0.0
elif age > 700:
desired_net = -0.1
else:
desired_net = 0.1
else:
desired_net = desired_net
错误信息:
elif age >= 31 and <= 60:
^
SyntaxError: invalid syntax
我想我在这里遗漏了一些东西,因为我很确定 <= 是一个有效的语法。
有没有人知道可能出了什么问题?如果您想查看更多行,请告诉我。
elif age >= 31 and age <= 60:
当使用and
运算符时,您需要再次编写要比较的变量,因为and
前后的每个表达式都是独立的。
或者,如果您使用 Numpy,您可以使您的代码更简单,并使逻辑功能化,如下所示:
def get_desired_net(age):
desired_net = {0:0.15, 31:0.12, 61:0.11, 91:0.10, 141:0.09, 181:0.08, 246:0.07, 271:0.06, 366:0.03, 501:0.00, 701:-0.01}
keys_array = np.array(list(desired_net.keys()))
max_age = max(keys_array[keys_array <= age])
return desired_net[max_age]
>>> get_desired_net(15)
0.15
>>> get_desired_net(30)
0.15
>>> get_desired_net(31)
0.12
>>> get_desired_net(700)
0.0
>>> get_desired_net(701)
-0.01