文字コード
前提: ユニコード(キャラクタセット、文字集合そのもの)と、文字コードの集合の1つであるユニコードをどう扱うか(バイト列で)を決めたのが文字コード。
バイト列 -> どうエンコードするか、という話
bit列でどれだけ1がでるかで、その文字(キャラクタ)のバイトの長さがきまる。(bitは2進法, byteは8bitになる)
python3ではstrオブジェクト(文字列オブジェクト)がユニコードとして情報を持ってる
python2ではstrオブジェクトは、バイト列(エンコードされたもの)で情報を持ってる。
u'あああ' とすると ユニコードでの情報となる。
replでやってると、バイト列のまま出力することが多いので、いろいろ認知コストがあがってしまう。
python2とおさらばすれば、認知負荷が減るが、、しっかり理解しても認知負荷は減る。どっちがよいか、コスト次第。