質問: 現状 -- 現在Pythonで機械学習について勉強をしています。 そこであるエラーが発生しました。 ``` [vagrant@local hoge]$ python hoge.py File "hoge.py", line 11 SyntaxError: Non-ASCII character '\xe3' in file hoge.py on line 11, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details ``` スクリプトを実行しようとしたら、このようなエラーが発生しました。 コードを見ると対象となる部分は、コメントアウトされた日本語の部分でした。 試しにその日本語を外すと、問題なく実行されました。 色々調べてみましたら、日本語を扱うためには、`# coding: UTF-8`を宣言しなくてはならないと書かれていたので、記載して、コメントアウトありの状態で再度実行したらうまく行きました。 疑問点 --- 1. Pythonで日本語を扱う場合、この方法でしか扱うことができないのか? 2. 別の方法で扱えるとしたら、どうすればいいのか? この2点の疑問を教えて頂きたいです。 2に関しては、1が私が試した方法以外の方法が存在する場合のみの疑問点となりますので、他の方法があれば教えて頂きたいと思います。 よろしくお願い致します。 別件 -- 全くの別件なのですが、 predict関数とは結局どういった関数なのか、調べてもよくわからなかったので、別件として記載致します。
回答: ソースに記述した日本語がUTF-8でエンコードされていると仮定して、 1. Python 2.xを使用している限り、それ以外に現実的な方法はありません。 2. Python 3.xを使用する or Python 2.xを使用して日本語もascii文字を使用してソースに記述しするようにする。 2の後者については、コメントを日本語で書くことは叶わなくなりますが、Python 2.xで`u"\u3042"`と記述すればそれは`u"あ"`と等価になります。 細かく突き詰めると色々と難しので素直にPython 3.x(今なら3.6や3.7あたり)を使用するようにしましょう。