Python2.XからPython3.Xに移る過程で、printの仕樣が變つた。文から函數になつて、文字列の扱ひ方も變化した。そこらへんを細かく説明してゐる本があまり無いので、キモを簡單に説明しよう。
>>> print u"%03d: %s" % (21, u'珈琲')
021: 珈琲
Python2では、こんな感じでprint文を使ふ。これをPython3でどう書けば良いのかについて、あまり情報がない。僕も結構、調べるのに時間が掛かつた。以下がそれである。
>>> print ("{0:03d}: {1:s}".format (21, '珈琲'))
021: 珈琲
これで良いのである。Python3の文字列はデフォルトでユニコードだから、u""とuを付ける必要がない。"%03d"は"{0}"だとフォーマットが指定できないのでコロン(:)の後に指定する。
あとは%ではなくformat()函數でデータを流し込む。%方式はPython3でも現在のところ動作するが、これはいづれは使へなくなる。早くfotmat()函數に慣れた方が良い。
Python3方式のprint()函數と文字列のフォーマットは、Python2でも使用可能である。その時はおまじなひで前方に以下の宣言をしておけば良い。
from __future__ import division, print_function, unicode_literals