【日記】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

参考


いいなと思ったら応援しよう!