这段python代码错哪,运行不了?arcgis批复条件赋值

def fillPX(fw):
if fw>22.5 and fw<=67.5:
return u'东北'
elif fw>67.5 and fw<=112.5:
return u'东'
elif fw>112.5 and fw<=157.5:
return u'东南'
elif fw>157.5 and fw<=202.5:
return u'南'
elif fw>202.5 and fw<=247.5:
return u'西南'
elif fw>247.5 and fw<=292.5:
return u'西'
elif fw>292.5 and fw<=337.5:
return u'西北'
else:
return u'北'

esri_field_calculator_splitter
fillPX( !FW! )

正常传值的话是可以输出的

def fillPX(fw):
    if fw>22.5 and fw<=67.5:
        return u'东北'
    elif fw>67.5 and fw<=112.5:
        return u'东'
    elif fw>112.5 and fw<=157.5:
        return u'东南'
    elif fw>157.5 and fw<=202.5:
        return u'南'
    elif fw>202.5 and fw<=247.5:
        return u'西南'
    elif fw>247.5 and fw<=292.5:
        return u'西'
    elif fw>292.5 and fw<=337.5:
        return u'西北'
    else:
        return u'北'
print(fillPX(222))

img

你要在main方法中调用这个方法,并且传参数值。
如有帮助,望点击我回答右上角【灰色采纳】按钮支持一下。
代码修改如下:

def fillPX(fw):
    if fw>22.5 and fw<=67.5:
        return u'东北'
    elif fw>67.5 and fw<=112.5:
        return u'东'
    elif fw>112.5 and fw<=157.5:
        return u'东南'
    elif fw>157.5 and fw<=202.5:
        return u'南'
    elif fw>202.5 and fw<=247.5:
        return u'西南'
    elif fw>247.5 and fw<=292.5:
        return u'西'
    elif fw>292.5 and fw<=337.5:
        return u'西北'
    else:
        return u'北'

if __name__ == '__main__':
  print(fillPX(66))

谢谢