質問: (year + 8) % 12 print('あなたの干支は', number_of_eto, '番です。') ``` と書くと あなたの生まれ年の西暦を4桁で入力してください: と出て年を入力すると ``` ('\xe3\x81\x82\xe3\x81\xaa\xe3\x81\x9f\xe3\x81\xae\xe5\xb9\xb2\xe6\x94\xaf\xe3\x81\xaf', 2, '\xe7\x95\xaa\xe3\x81\xa7\xe3\x81\x99\xe3\x80\x82') ``` と出てしまいます。 本だとあなたの干支は〜番ですと出るはずなのですが、どこか書き方が間違っていますか❓
回答: Python 3 をお使いなのであれば、このコードで正しく出力されるはずです。しかし Python 2 では質問文にあるようにバックスラッシュでエスケープされたものがたくさんある文字列が出力されます。これは、Python 3.0 からプログラム中にある文字列のエンコードの扱いが変わったことと関係しています。 ということで、まずはお使いの Python のバージョンをご確認ください。これはたとえばターミナルで以下のコマンドを入力すると確かめられます。 ``` python --version ``` Python 2.x がインストールされていれば、それが原因です。解決法はいくつかあります。 * `python3` コマンドが存在すれば、`python` コマンドの代わりにこれを使う。これは Python 3.x 系を動かすためのコマンドです。 * 今後 2.x 系を使う予定が無いのであれば、一度 2.x を削除して 3.x をインストールする。これのやり方は OS やパッケージ管理ツールによって異なります。やり方が分からなければ別途ご質問ください。