Sure, with ListFields() and then a conditional to check if the field is actually in the feature class...Change the last bit of code (from for fc in listFCs onwards):for fc in listFCs:
fcFieldList = arcpy.ListFields(fc)
if (valueField in fcFieldList) & (classField in fcFieldList):
rows = arcpy.UpdateCursor(fc)
for row in rows:
row.setValue(classField, calc(row.getValue(valueField))) # looks complex, but is just getting the value from valueField, passing it to CALC then writing the output to the classField
rows.updateRow(row)
try: del row
except NameError: pass
del rows
If the feature class doesn't have both fields, it will skip the file. It would also be possible to add the fields, if that was what you wanted.