Here it is. Changes to your code are provided below, followed by an explanation.
layer = qgis.utils.iface.activeLayer() expression = "/"MTFCC/" = /"H3010 /" " # note that I've modified this line processing.runalg("qgis:selectbyexpression", layer, expression, 0)
Using processing.alghelp("qgis:selectbyexpression") I have seen that the function uses QString and not an Expression as a parameter. Thus there was no need to use QgsExpression as I've suggested before. Nevertheless, your syntax was wrong, since you misused ".
In general when you build a python string you will use "..." to define the places a string starts and ends. Similarly, you can involve both strings and variables to build a more complex expression, e.g. "This string involves a" + variable + ", right?".
In your case you wanted an expression that calls a field, which in SQL looks like that: "FieldName1" = "FieldName2". Python however reads two strings instead of one expression. The common slash (/) is used as an "exit" sign, and it indicates that the symbol that follows is a part of a string, and not a python function. Using / " causes the interpreter to ignore any commands / activities related to this specific ". Finally it leads to this python expression: " /"FieldName1/" = "/FieldName2/" ".
expression = QgsExpression(" \"MTFCC\" = \"H3010\" ")