无法弄清楚 NameError

Can't figure out NameError

我正在尝试主要使用 if 语句来构建成本模型,但我不断收到错误消息:

NameError: name 'spread_1' is not defined. 

我是 python 的初学者,所以我不知道我是否做错了什么。请帮忙

#water depth of project site in metres
water_depth = 100

#platform wells require jackups
pl = 1
#1-2 complexity required LWIV
ss_simple = 1
#3-4 complexity requires rig
ss_complex = 0

#day rates
vjackup = 75000
jackup = 90000
vsemi = 170000
semi = 300000
lwiv = 200000

#determining vessel spread for platform wells
if pl >= 1:
    if water_depth == range(0, 50):
        spread_1 = vjackup * 24.1
    elif water_depth == range(51, 150):
        spread_1 = jackup * 24.1
elif pl == 0:
    spread_1 = 0

您应该在

处将 == 替换为 in
if water_depth == range(0, 50):

elif water_depth == range(51, 150):

制作您的代码块:

if pl >= 1:
    if water_depth == range(0, 50):
        spread_1 = vjackup * 24.1
    elif water_depth == range(51, 150):
        spread_1 = jackup * 24.1
elif pl == 0:
    spread_1 = 0

进入

if pl >= 1:
    if water_depth in range(0, 50):
        spread_1 = vjackup * 24.1
    elif water_depth in range(51, 150):
        spread_1 = jackup * 24.1
elif pl == 0:
    spread_1 = 0

但在您的情况下使用极端相等运算符会更实用:

if pl >= 1:
    if 0 <= water_depth < 50:
        spread_1 = vjackup * 24.1
    elif 51 <= water_depth < 150:
        spread_1 = jackup * 24.1
elif pl == 0:
    spread_1 = 0

请注意 range() 函数省略了结束值,因此 range(0, 50) 的最后一个值将是 49,而不是 50