【日記】Python2から3への主な変更点メモ
最近はPython3でコードを書くことも増えてきているけど、僕のPythonの知識がPython2.7で止まっているのでPython2から3への主な変更点について改めて調べました。自分が普段利用する際あまり関係なさそうなところは割愛してます。
・printの関数化
・整数除算の扱い
1/2の結果がfloatになる。python2だと1/2.0としないとダメだった。
小数点以下切り捨てた結果がほしい場合は1//2とするらしいが、
個人的にはint(1/2)の方が好き。
・Unicode
テキストはすべてunicodeに。
u"xxxxx"が使えなくなった
python3ではbyteとbytearrayが導入
・xrangeがrangeになってxrangeは廃止
python2でのrangeとxrangeの違い
rangeはリストを返す
xrangeはイテレータを返す
・例外スローの書き方
・例外処理でasが必要
・listではなくiterableなオブジェクトを返すようになった
zip()、map()、filter()、dict.keys()、dict.values()、dict.items()
listが必要ならlist()関数を使って変換する
今からどうしてもPython2で開発しないといけない場合
__future__モジュールを使う
from __future__ import print_function
from __future__ import unicode_literals
from __future__ import division
from __future__ import absolute_import