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を使っていきます。