最初に>>204を書き込んだ者です。質問の背景としては、
Perlにおいていろんな本やサイトの記述を読んでも
文字コードエラーがなくならず嫌になりかけていたところ、
>>204の三原則にそって考えるようにしたら
文字コードエラーがぴたっと止まったという経験がありました。
ですが無意識には、Python2と3では文字コードの扱いは変わったはず、
だとすればこの両者で同じ原則が通用するのかしないのか、
通用するのなら文字コードの扱いが変わった意味は…
といったもやっとした問題意識があったようです。

Python2については同じ考え方でよいという返事をいただきました。
Python3については考え方については特に返事はいただいてないですが、
printでencodeはしてはいけないという指摘があり、どうやら
Python3では>>204の三原則をそのまま適用というわけにはいかないようだとわかりました。
日本語の扱いが楽になったといわれているPython3で、身に付いた考えが
使えないのは私にとってはジレンマなのですが…

教えていただいたことを手がかりにもう少しPythonの文字コードについては
勉強を続けていきたいと思います。
質問に答えていただいたみなさん、ありがとうございました。