Assuming that x is an integer, the construct if x: is functionally the same as if x != 0: in Python. Some languages' style guides explicitly forbid against the former -- for example, ActionScript/Flex's style guide states that you should never implicitly cast an int to bool for this sort of thing.
Does Python have a preference? A link to a PEP or other authoritative source would be best.
Might I suggest that the amount of bickering over this question is enough to answer it?
Some argue that it "if x" should only be used for Z, others for Y, others for X.
If such a simple statement is able to create such a fuss, to me it is clear that the statement is not clear enough.  Write what you mean.
If you want to check that x is equal to 0, then write "if x == 0".  If you want to check if x exists, write "if x is not None".
Then there is no confusion, no arguing, no debate.
Which of `if x:` or `if x != 0:` is preferred in Python?