我在ArcPro中抛出了python 3警告,其中指出:
警告002858:某些行在评估python表达式时由于错误而设置为NULL:文件“ string”,第3行,在重新分类中
我正在使用的代码如下:
UpOrDown_PerAcre = reclass(!GP2040Area!,!UpOrDownNum!)
代码块
def reclass(GP2040AREA, UpOrDownNum):
if (UpOrDownNum != 0 or UpOrDownNum != 999):
UpOrDown_PerAcre = GP2040AREA * UpOrDownNum
return UpOrDown_PerAcre
我想做的是,对于UpOrDownNum中每个不为0或999的单元,在新列UpOrDown_PerAcre中输出单元GP2040ArEA和UpOrDownNum的倍数。
根据我的理解,第3行是“ UpOrDown_PerAcre = GP2040AREA * UpOrDownNum”,它表示输出是字符串?我确实将if语句归类为if (UpOrDownNum == int and UpOrDownNum != 0 or UpOrDownNum != 999):
,因为UpOrDownNum中存在-are-空值,可能会抛出“字符串”警告,但从if语句中删除该值后,它是相同的。
我到底在哪里出错?
也许检查UpOrDownNum不为None(Python的null版本):
def reclass(GP2040AREA, UpOrDownNum):
if (UpOrDownNum is not None and (UpOrDownNum != 0 or UpOrDownNum != 999)):
UpOrDown_PerAcre = GP2040AREA * UpOrDownNum
return UpOrDown_PerAcre
else:
return None # or 0 or -1 or whatever you want to signify the UpOrDown_PerAcre wasn't calculated