Remrinのpython攻略日記

python3に入門しました。python3についてあれこれとサンプルコードとか。

pythonのバージョン

pythonは2系と3系で文法が異なっていて、互換性はありません。

私もpythonに入門しようと思い、いくつかののサイトを巡ってみると

初心者むけのサイトほどpython2系のみに対応しているなど、混乱を招きやすい状態です。

サンプルコードをコピペしてもエラーを吐いて動かないことがしばしば。

時代はpython3なのに、ネット上にはpython2の遺産がまだ多く残っているといったところでしょうか。

これからpythonを始めようと思う方は、サンプルコードがpython3で書かれているのを確認したほうがいいと思います。

私自身が混乱して困った例をいくつか挙げておきます。

python2 python3
print a print(a)
printではend=""がデフォ end=""で改行なし
/ 商は整数 / 商が小数
  // 商が整数
u"日本語" "日本語"
整数型が2種類 整数型はintのみ
8進数はo 8進数は0o
dictのiterkeyなど 廃止→keyがイテレータを返す
Tkinter tkinter
urllib2 urllib
map, filterは即計算 map, filterはイテレータを返す
reduce()はbuilt-in reduceはfunctoolsモジュール
range()で即リスト化 range()でイテレータ
xrange()はイテレータ 廃止
except 例外 , e: except 例外 as e:
True, Falseは変数→True=0と代入可 True, Falseは定数
.next() .__next__()
親クラス名.メソッド() super(子クラス名, self).メソッド名(), super().メソッド名()
外部ファイルにはcodecsモジュール必要 codecsモジュール不要
%形式の文字列フォーマットあり %形式は廃止の方向
スクリプトの先頭にエンコード名必須 utf-8がデフォルトなのでエンコード名不要
組み込み型は関数 組み込み型はクラスで定義

このブログではpython3を使っていきます。