拙ブログの過去記事のPythonプログラムを2でも3でも動くように修正してみた。

 拙ブログの過去記事のPythonプログラムを2でも3でも動くように修正してみました。(^_^;
 主な修正内容は次の通りです。

print 〜 → print(〜)
printprint("")
print 〜, → print(〜,end=" ")
(整数除算の商)i/j → i//j
range(〜) → list(range(〜))
raw_input() → input()

 「print 〜,」は、両方で動くように修正するのが難しかったので、使わないですむように作り直すか、「print(〜,end=" ")」をコメントとして併記しました。(^_^;
 Python3では、「reduce」を使うとき、「from functools import reduce」が必要になったようです。
 また、「print(u"全角文字")」の「u」は、付けたままでもPython3で動くようです。
 それから、MandarinOrange.pyで、「exec("代入文")」を使うと、Python2ではうまくいくのに、Python3ではなぜか調子が悪いようです。(^_^;

P.S.
 exec()の件ですが、代入文の後に「,globals()」をつけたらうまくいきました。文法的に少し厳しくなっているようです。(^_^;


※参考URL
2to3を使ってコードをPython 3に移植する - Dive Into Python 3 日本語版
Python 3ではまったこと - minus9d's diary
Python 2.7.x と 3.x の決定的な違いを例とともに | プログラミング | POSTD