2.x系と3.x系の違い (1) | Python

2.x系と3.x系の違いについて簡単に記します

どちらを導入するか迷う場合の参考になれば幸いです。

注意点

まず、違いについて知る前に
注意しておかなければならないのが
2.x系と3.x系は互換性がないということを
頭に入れておいてください。

つまりは、2.x系のソースコードは3.x系では動かない場合がある
というよりも動くことを期待しない方が良いと思います。

ただ、2.6あたりから3.x系の文法に対応し始めているので
2.x系で3.x系に慣れていけばどちらでも動作するプログラムが書けると思います。

その理由はそれぞれの違いを知ると分かってきます。

print の扱い

2.x系と3.x系の違いは?と聞かれて、
だいたいの人が言うのはprintが文から関数になったことと
答えるでしょう。

2.x系の場合:print文

>>>print "Hello,World!"
Hello,World!

3.x系の場合:print()関数

>>>print("Hello,World!")
Hello,World!

辞書のhas_key(),iterkeys()などが動かない

has_key()とは辞書オブジェクトに対しあるキーが存在するかを調べる関数です。

2.x系

>>>dict = {"I":111, "my":222,"me":333}
>>>dict.has_key("me")
True
>>>dict.has_key("You")
False

これが3.x系では動きません!
比較演算子:in演算子を使いましょう。

2.x系と3.x系:in演算子

>>>dict = {"I":111, "my":222,"me":333}
>>>"me" in dict
True
>>>"You" in dict
False

Pythonでは複数の方法で処理できることを避けるために
has_key()がお亡くなりになったそうです。
なぜin演算子が残ったかというと、
in演算子はリストにも使えるので、
リストと辞書で同じ使い方で処理できて分かり易いからです。

続き:2.x系と3.x系の違い (2) ー作成中ー

           
ページ上部へ戻る