I'm trying to use an if statement in the field calculator: This is what the code looks like in Python:
a= 2
FacilityID= !FACILITYID!
if a%2==0:
MH_ID_Calc=FacilityID[0:6]
else:
MH_ID_Calc=FacilityID[7:14]
print MH_ID_Calc
06M244
so I tried to run that in ArcGIS field calculator:
def myCalc(FID,FACID):
if FID%2==0:
return FACID[0:6]
else:
return FACID[7:14]
myCalc( !FID! !FACILITYID!)
But it fails each time.
1 Answer 1
As others have already commented, the parameters of the function call in your expression should be comma separated:
myCalc(!FID!, !FACILITYID!)
And you must use correct indentation with Python (unlike other languages, this is part of Python syntax, and it will not work if the indentation is not correct):
def myCalc(FID,FACID):
if FID%2==0:
return FACID[0:6]
else:
return FACID[7:14]
Ie, anywhere that a line ends with a colon (:
) represents a new code block and the next line should be indented further. All lines within a block must have exactly the same indentation, unless they are part of a sub-block, in which case, they must have the exact same indentation as the other lines a the same level of that sub-block.
Explore related questions
See similar questions with these tags.
myCalc(!FID!, !FACILITYID!)
? There's a comma missing when you call the function