python2系/3系、文字コードとprint文/コマンドライン


python2系

宣言

>>> text = 'テキスト'
>>> btext = b'テキスト'
>>> utext = u'テキスト'

出力

>>> text
'\xe3\x83\x86\xe3\x82\xad\xe3\x82\xb9\xe3\x83\x88'

>>> print text
テキスト

>>> btext
'\xe3\x83\x86\xe3\x82\xad\xe3\x82\xb9\xe3\x83\x88'

>>> btext.decode('utf-8')
u'\u30c6\u30ad\u30b9\u30c8'

>>> print btext.decode('utf-8')
テキスト

>>> print btext
テキスト

>>> utext
u'\u30c6\u30ad\u30b9\u30c8'

>>> print utext
テキスト

python3系

宣言

>>> text = 'テキスト'
>>> btext = b'テキスト'
  File "<stdin>", line 1
SyntaxError: bytes can only contain ASCII literal characters.

>>> utext = u'テキスト'

出力

>>> text
'テキスト'

>>> print(text)
テキスト

>>> utext
'テキスト'

>>> print(utext)
テキスト