That's VBScript, you need to do one of the following. (This is documented in the Calculate Field tool documentation.)
VBScript (the default BTW):
gp.CalculateField_management(nn_file, "p_area", "[F_AREA] / 1000")
gp.CalculateField_management(nn_file, "p_area", "!F_AREA! / float(1000)","PYTHON")
- It is best practice (in Python 2.x anyway) to recast one of the operands to float to ensure you get floating division. (Even though if !F_AREA! is a float field python will know that, it's a good idea.)
- Mathew's comment about different field syntax for different dataset types does not apply here -- that applies only to SQL expressions used in tools like Select and MakeFeaturelayer. In Calculate Field, fields are always surrounded by  or !!, depending on the choice of script language.