Python2系で日本語をprintする

開発

スマートなコーディングができるPythonですが、Python2系では文字列は標準でASCIIとして判定してしまいます。

print 'こんにちは'

上記のコードをスクリプトファイルに記述して実行すると下記エラーになります。

Traceback (most recent call last):
  File "/Users/Tono/Library/Application Support/IntelliJIdea13/python/helpers/pydev/pydevd.py", line 1534, in 
    debugger.run(setup['file'], None, None)
  File "/Users/Tono/Library/Application Support/IntelliJIdea13/python/helpers/pydev/pydevd.py", line 1145, in run
    pydev_imports.execfile(file, globals, locals) #execute the script
  File "/Users/Tono/IdeaProjects/pythonSample/test.py", line 2
SyntaxError: Non-ASCII character '\xe3' in file /Users/Tono/IdeaProjects/pythonSample/test.py on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

これをエラーなしで出力するには以下のようにコーディングを指定しなければなりません。

#coding=utf-8
print 'こんにちは'

これだけです。

なお、Python3系では文字列はすべてUnicodeで扱うため、コーディングの指定は不要です。
print文が廃止され式となったため以下の記述で動作します。

print('こんにちは')

コメント

タイトルとURLをコピーしました