First, I couldn't find an answer to this in PEP 8. That doesn't mean it isn't in there. Feel free to point me at it.
Which style do you prefer?
The first one:
if spam:
# Do stuff.
return eggs
else:
# Maybe do other stuff.
return parrots
or the second one:
if spam:
# Do stuff.
return eggs
# Maybe do other stuff.
return parrots
Neither!
The first one!
Explicit is better than implicit.
It depends, if you would return parrots, when you do not return eggs, then the first one is more clear. But if you are trying to catch an error or something like that, the second one is better.
I think it depends on the "do stuff" part. Both are acceptable.
I don't know python, but I do :
Edit : I didn't notice the Do stuff part. In that case, I would create another method or function (whatever it is called in python) for each branch.
It doesn't really matter. If you really need reasons for picking one, use the one that best conveys the reasons behind the code. The first one if both cases are somehow similar or equally important. The second one if you usually return parrots but eggs is a special case.