All of these are "as long as not at huge expense to the others"; any would be bad on their own.
(in machine-learning-nerd terms, read these as a series of objective functions, and evaluate code based on these as something approximately like the sum of squared errors function. In non-machine-learning-nerd terms, one should try to minimize how much code breaks each of these rules individually. They are not priority sorted.)
-
Beautiful is better than ugly - while this is hopefully obvious, looking better is an acceptable thing to aim for.
-
Explicit is better than implicit - only delegate to implicit things that are sufficiently common to not be confusing.
-
Simple is better than complex - do make things implicit that will be obvious anyway.